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

阅读数:43 2019 年 10 月 28 日 08:00

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

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

(一) Hyperledger Cello 介绍

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

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

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

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

(二) Hyperledger Cello 架构

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

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

  • 管理区块链的全生命周期,包括创建、配置、使用、健康检查、删除等。
  • 支持多种基础架构作为底层资源池,包括裸机、虚拟机、容器云(Docker、Swarm、Kubernetes)等。
  • 支持多种区块链平台及自定义配置(目前以支持超级账本 Fabric 为主)。
  • 支持监控和分析功能,实现对区块链网络和智能合约的运行状况分析。
  • 提供可插拔的框架设计,包括区块链平台、资源调度、监控、驱动代理等都很容易引入第三方实现。

(三) Hyperledger Cello 部署拓扑

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

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

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

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

(四)Hyperledger Cello 环境要求

巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS) 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 文件。

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

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

2) 增加主机

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

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

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

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

共 4 个 Docker Host, 每台 Chain 容量为 3, 所以能看到 12 条活动的 Chain 巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS)

4) 查看 Chain 信息

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

a) Chain Id 与 Host Id

b) Hyperledger Explorer 的 URL

c) 支撑该 Chain 的所有 Containers

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

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

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

5) 登录普通用户界面

具体操作如下:

http://Master_Node_IP:8081

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

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

按下面的方式提交申请新的 Chain 巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS)

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

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

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

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

这是一个设计好的 Sample,参数可以任意输入。 巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS)

提交后大约 30 秒左右,屏幕显示如下表示已经成功部署。 巧用 Hyperledger Cello 开启AWS云端区块链即服务(BaaS)

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

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

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

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

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

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

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

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

6) 释放已部署的应用

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

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

(七) 总结及参考资源

综上所述,通过轻巧地一键式部署操作,在数分钟之内便可在 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/

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布