写点什么

巧用 Hyperledger Cello 开启 AWS 云端区块链即服务 (BaaS)

  • 2019-10-28
  • 本文字数:3767 字

    阅读完需:约 12 分钟

巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS)

区块链作为颠覆式创新的突破性技术,已在世界各地呈现方兴未艾的发展态势。科技领先的企业正在借助区块链的安全特性与信任机制,在供应链金融、银行保理、跨境支付结算等业务领域,进行着业务模式创新及业务价值链重塑。科技的核心竞争力体现在“快”上,利用平台优势可以加速业务创新效能,提升企业的竞争优势。基于 Linux 基金会的 Hyperledger Cello 开源框架,构筑于 AWS 云端的区块链即服务 (BaaS) 平台能够提供功能完善、性能稳定、开箱即用的区块链服务,为业务快速创新提供“区块链+”技术支撑,助力业务部门快速落地区块链应用,融入业务创新生态系统。

(一) Hyperledger Cello 介绍

Cello 是 2017 年新加入 Hyperledger 的一个新区块链项目,并用于部署区块链即服务(BaaS)的工具包,最大限度地减少了创建、管理及终止区块链的时间及工作。



Cello 旨在向区块链生态系统部署区块链即服务(BaaS)模式,以便以更有效的方式提供多租户连锁服务,包括物理机、虚拟机、云和 Docker 环境。Cello 将作为一种服务机制,支持 Hyperledger 旗下的其他项目,包括 Fabric、Sawtooth Lake, Blockchain Explorer 以及 Iroha。


Cello 项目使开发人员能够通过仪表板创建和管理池中的多个区块链,同时使用户能够使用单个请求快速获取区块链上的信息。Cello 利用 Docker API 来管理远程主机中的区块链群集,因此可以轻松部署到按需提供计算资源的云环境中。

(二) Hyperledger Cello 架构

在实现区块链环境快速部署的同时,Cello 也提供了不少对区块链平台进行运行时管理的特性,主要组件参考如下:



  • 管理区块链的全生命周期,包括创建、配置、使用、健康检查、删除等。

  • 支持多种基础架构作为底层资源池,包括裸机、虚拟机、容器云(Docker、Swarm、Kubernetes)等。

  • 支持多种区块链平台及自定义配置(目前以支持超级账本 Fabric 为主)。

  • 支持监控和分析功能,实现对区块链网络和智能合约的运行状况分析。

  • 提供可插拔的框架设计,包括区块链平台、资源调度、监控、驱动代理等都很容易引入第三方实现。

(三) Hyperledger Cello 部署拓扑

Cello 采用了典型的主从(Master-Worker)架构,具体参考如下:



Master 节点负责管理(例如,创建和删除)Worker 节点中的区块链集群,其通过 8080 端口对外提供管理 Dashboard,通过 8081 端口对外提供应用 Dashboard,通过 80 端口对外提供 RESTful API。


Worker 节点负责提供区块链集群的物理资源,例如基于 Docker 主机或 Swarm 的方式启动多个集群,作为提供给用户可选的多个区块链网络环境。

(四)Hyperledger Cello 环境要求


Cello 第三方软件说明,建议选用 Amazon Linux,Master 与 Worker 节点都安装最新版本的 Docker Engine,另外 Master 节点还需安装新版本的 docker-compose,详细内容请参考 User Data(可以直接从后面的链接下载)及后面的操作过程。

1) Cello Master User Data 脚本

https://s3.cn-north-1.amazonaws.com.cn/myvmimport/Cello-Master-userdata.sh


#!/bin/bash

#应用更新

sudo yum update -y

#安装 Docker

sudo yum install docker sysstat git make gettext ksh -y

#修改 Docker 启动配置,增加一个国内镜像库站点

sudo cat > /etc/sysconfig/docker <<EOF

DAEMON_MAXFILES=1048576

OPTIONS=”–default-ulimit nofile=4096:8192 –default-ulimit nproc=2048:4096 –ip-forward=true –iptables=true –registry-mirror=https://registry.docker-cn.com”

DAEMON_PIDFILE_TIMEOUT=10

EOF

#启动 Docker

sudo service docker start


  1. Cello Worker User Data 脚本


https://s3.cn-north-1.amazonaws.com.cn/myvmimport/Cello-Worker-userdata.sh


#!/bin/bash

#应用更新

sudo yum update -y

#安装 Docker

sudo yum install docker sysstat git make gettext ksh -y

#修改 Docker 启动配置,增加一个国内镜像库站点

sudo cat > /etc/sysconfig/docker <<EOF

DAEMON_MAXFILES=1048576

OPTIONS=”-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock –api-cors-header=’*’ –default-ulimit nofile=4096:8192 –default-ulimit nproc=2048:4096 –ip-forward=true –iptables=true –registry-mirror=https://registry.docker-cn.com”

DAEMON_PIDFILE_TIMEOUT=10

EOF

#启动 Docker

sudo service docker start

(五) Hyperledger Cello 安装过程

本章节将不详细解释 AWS EC2 的启动过程,有关此过程请参考 Cello 官方原文。


http://cello.readthedocs.io/en/latest/awsinstall/

1) 启动 EC2 实例需要注意的地方

a)AMI 请选择 Amazon Linux,User Data 脚本仅适用于此环境;

b)针对 Master 与 Worker 节点请采用不同 User Data 脚本;

2) Master 节点 EC2 实例启动后的任务

#SSH 客户端登录到 Master 节点,执行如下操作

sudo pip install -U docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

git clone http://gerrit.hyperledger.org/r/cello && cd cello

sudo make setup-master

exit

#退出 SSH 客户端并重新登录到 Master 节点,并启动 Master 节点

cd cello

sudo make start

#可以查看 Master 节点的详细启动日志

sudo make logs

3) Worker 节点 EC2 实例启动后的任务

#SSH 客户端登录到每个 Worker 节点,执行如下操作

git clone http://gerrit.hyperledger.org/r/cello && cd cello

sudo make setup-worker

(六) Hyperledger Cello 功能展示

1) 登录管理界面

可以先参考官方原文


http://hyperledger-cello.readthedocs.io/en/latest/dashboard/#dashboard


具体操作如下:


http://Master_Node_IP:8080 用户名:admin 密码:pass


默认的用户与密码可以在 make 的时候修改 docker-compose.yml 文件。


进去后可以再新建一个管理员与普通用户,并用停用默认用户与密码。


2) 增加主机

点击 Host,把所有的 Docker 主机都添加进去,Name 可以自定义,URL 是 Docker 主机的 IP 地址与端口,确保安全组 2375 已经打开,链容量为 3,具体过程如下:

3) 激活 Chain

Fillup 操作会自动按容量激活每台 Docker Host 上的 Chain,每个 Chain 会在 Worker 节点上启动一组 Docker 容器来支撑其运行。



共 4 个 Docker Host,每台 Chain 容量为 3,所以能看到 12 条活动的 Chain


4) 查看 Chain 信息

当我们点开 Name 为 worker01_0 的 Chain,可以看到 Chain 的信息如下:


a) Chain Id 与 Host Id

b) Hyperledger Explorer 的 URL

c) 支撑该 Chain 的所有 Containers



当我们打开 Hyperledger Explorer 的 URL(需要找到此 Docker Host 对应的公网 IP,安全组入站放行相应的端口,每个 Chain 都可能不一样)


5) 登录普通用户界面

具体操作如下:


http://Master_Node_IP:8081


建议不要使用默认的用户名及密码,使用前面自建的普通用户,点击 Apply Now 继续



按下面的方式提交申请新的 Chain



大约等待 20 秒,刷新页面显示如下,已经是 Running 状态。



点击 Smart Contract,我们选择自带的例子 fabric-map 去 Install 与 Instantiate



这是一个设计好的 Sample,参数可以任意输入。



提交后大约 30 秒左右,屏幕显示如下表示已经成功部署。



切换到 Chain 界面,可以发现已经有 2 个 Block 与 1 个 Smart Contract。



切换到 Invoke 界面,进行 Invoke Call 模拟交易测试,会自动生成 Hash 值。



切换到 Chain 界面,可以看到每个 Block 的 Hash 值及对应的事务信息。



当我们打开 Hyperledger Explorer 的 URL,再切换到 mychannel 就能看到过去 Invoke 的统计信息。


6) 释放已部署的应用

切换到 Chain 界面,点击 Release,将释放 MyApp01 应用及对应用 Chain。


(七) 总结及参考资源

综上所述,通过轻巧地一键式部署操作,在数分钟之内便可在 AWS 云端运行基于 Hyperledger Cello 框架的区块链即服务(BaaS)平台,为业务及 IT 部门提供基于 Hyperledger Fabric 开源技术的区块链服务。业务和科技人员一旦在脑海中闪现出新的“区块链+业务”场景,就可立即上手使用该平台迅速进行场景落地和原型验证,快人一步加速创新产品落地,使“区块链+”创新不再限于纸上谈兵。


该平台极大的降低了用户利用区块链技术的时间成本和技术壁垒,助力企业以区块链技术为科技创新突破口,尝试落地区块链应用,以此扩展新的业务模式,找到新的业务发力点,适配市场热点,让科技更好地支撑业务发展;同时有助于企业储备新的专业知识,在专业技术领域,培养创新型人才,融入创新生态系统,借助外力合作共赢。


[官方说明] https://www.hyperledger.org/projects/cello


[项目源码] https://github.com/hyperledger/cello


[部署文档] http://cello.readthedocs.io/en/latest/


作者介绍:


蒋华


AWS合作伙伴解决方案架构师,已获得AWS解决方案架构师专业级与DevOps Engineer专业级认证,主要负责AWS(中国)合作伙伴的技术支持工作,同时致力于AWS云服务在国内的应用及推广,并在关系型数据库服务、存储服务、分析服务、HA/DR及云端应用迁移方面有着丰富的设计和实战经验。加入AWS之前,曾在IBM(中国)工作12年,历任数据库售前工程师、UNIX服务器资深售前工程师及解决方案架构师,熟悉传统企业IT架构、私有云及混合云部署,在数据库、数据仓库、高可用容灾及企业应用架构等方面有多年实践经验。
复制代码


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/hyperledger-cello-aws-cloud-blockchain-baas/


2019-10-28 08:001089

评论

发布
暂无评论
发现更多内容

为什么要使用zookeeper

Jerry Tse

zookeeper 分布式锁 分布式系统 共识算法 数据强一致性

腾讯Java后端社招三面,差点就挂了!

程序员小毕

Java 程序员 面试 程序人生 架构师

IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!

Apache IoTDB

Mac版本After Effects 2023怎么切换中英文UI界面

展初云

教程 Mac软件 After Effects

英伟达,不能只做孤独的胜利者

自象限

福利贴|这是一个程序员不看一定会后悔的问题

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

TinyEngine 低代码引擎到底是什么?

英勇无比的消炎药

开源 前端 低代码

“00后”整顿职场,终于轮到网安圈了

脑极体

数据湖

Github上线即遭狂转!上百人通过这份算法手抄本成功上岸字节

程序员万金游

#java java 架构 #算法 #数据结构 #java编程

Redis内存碎片:深度解析与优化策略

Java随想录

Java redis

英文版Premiere Pro怎么切换成中文?「Mac篇」

展初云

教程分享 Mac软件 Premiere Pro

为什么自动化测试要分层

老张

自动化测试

华为智慧屏,吹尽狂沙始到金

脑极体

AI智慧屏

大道总是孤独的——查理芒格如是说

少油少糖八分饱

投资 长期主义 能力圈 查理芒格 股东大会

数字中国下西洋,需要一支怎样的船队?

白洞计划

AI 网易 风控

使用Optional优雅避免空指针异常

Java随想录

Java 异常

火山引擎边缘云:数智化项目管理助力下的业务增长引擎

火山引擎边缘云

数字化 飞书 数智化 #项目管理

close()关闭文件方法

芯动大师

苹果电脑专业图表绘制推荐OmniGraffle Pro 正式版激活中文

胖墩儿不胖y

Mac软件 绘图软件 绘图工具

一文了解常见的Python爬虫框架Scrapy

TiAmo

python 爬虫 Scrapy

Redis类型(Type)与编码(Encoding)

Java随想录

redis

Java训练营毕业总结

jjn0703

Python 中的数字类型与转换技巧

小万哥

Python 程序员 软件 后端 开发

轻量应用服务器,助力个人开发者最低成本创业

YG科技

人工智能核心基础 - 规划和概要

茶桁

人工智能 机器学习 深度学习 CNN RNN

华为阅读“鲁迅专栏”已上线,读国内名家作品就上华为阅读

最新动态

华为云耀云服务器L实例:带你探索轻量应用服务器的魅力

YG科技

巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS)_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章