巧用Hyperledger Cello 开启AWS云端区块链即服务(BaaS)
Posted 区块链开源技术社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巧用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
2) 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) 增加主机
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/
1.https://amazonaws-china.com/cn/blogs/china/hyperledger-cello-aws-cloud-blockchain-baas/
喜欢的话点点关注,欢迎一起交流区块链开源技术
以上是关于巧用Hyperledger Cello 开启AWS云端区块链即服务(BaaS)的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS 区块链模版搭建 Hyperledger Fabric