Hyperledger Cello简介

Hyperledger Cello是超级账本项目下面的一个子项目,提供按需部署的功能,可以将区块链部署在各种裸机、虚拟机、容器等环境中。本篇内容我们将对这个工具进行快速概览。

attachments-2018-03-9MDlTgOS5aa74ab46b850.png

作者:冯宇Ops

来源:简书

原文链接:http://t.cn/EvkYnjE

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文约2800字+,阅读(观看)需要16分钟


Hyperledger Cello是超级账本项目下面的一个子项目,提供按需部署的功能,可以将区块链部署在各种裸机、虚拟机、容器等环境中。该项目最初由IBM发起,目前得到了Soramitsu, 华为,和Intel的赞助。

该项目目前还在孵化中,未来可能还存在较大变化,本篇内容我们将对这个工具进行快速概览。



Cello的功能简介



Cello可以容易的帮助用户实现:

  • 从头开始快速构建一个区块链即平台(BaaS)的服务
  • 支持可定制的区块链,如 Hyperledger fabric network v1.0.
  • 可以在裸机、虚拟云端(如虚拟机,vsphere Clouds等),或容器集群(如Docker, Swarm, Kubernates等)中管理一个区块链网络资源
  • 从dashboard中就可以完成检查系统状态,调整区块链数量,扩展资源等功能


典型的应用场景如下:

1540176483118111cc2192f




安装部署



整个Cello的架构图如下所示:

154017648319233ce4b5482


Cello采取了一主多从的部署模式,Cello Service部署在Master节点上,提供宿主资源的裸机或虚拟环境称为Host,被Cello管理的区块链服务单元称为Worker。整套环境部署要求至少一个Master与一个Worker。

Master安装部署


Master节点提供Cello Service的宿主环境,通常提供web管理界面。官方建议Master使用Linux运行环境,推荐Ubuntu 16.04操作系统。

Master环境要求如下:

  • Hardware: 8c16g100g
  • Docker engine: 1.10.0~1.13.0 (Docker 17.0+ support is experimental)
  • docker-compose: 1.8.0~1.12.0


Docker的环境安装就略过了,直接按照Docker官方文档的来就好了。

Cello安装需要两步,克隆代码,运行脚本:

$ sudo aptitude install git make -y
$ git clone http://gerrit.hyperledger.org/r/cello && cd cello
$ make setup-master


之后脚本便会安装一些依赖,以及下载所需要的Docker镜像,使用make start/stop/restart等命令就可以,此外,还可以通过添加环境变量控制启动行为,具体可以参考官方文档

此时就可以访问http://ip:8080打开web管理界面了,默认的用户名密码分别为admin和pass

Worker安装部署


当前Cello只支持Docker和Swarm做Worker node,未来会支持更多Worker node类型。部署Worker node除了支持Docker和Swarm方式本身之外,还支持kubernates和ansible方式(实际就是在客户机上部署Docker+k8s那一套,然后做了下自动化配置)。

本篇内容我们以最基础的Docker部署Worker node方式演示。为了演示我们用了同一台PC机,产品环境请务必将Master和Worker分布式部署。

由于Master管理Worker上的Docker是通过tcp端口访问的,而Docker默认配置是监听unix domain socket,不监听TCP端口,因此我们需要修改Docker的默认配置,以监听TCP端口。编辑/etc/docker/daemon.json文件(默认不存在此文件,可以自行创建一个):

{  "registry-mirrors": ["https://registry.docker-cn.com"],  "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"],  "api-cors-header": "*"}


特别注意如果你的操作系统使用的Systemd管理的docker服务(比如Ubuntu 16.04, CentOS7, Debian 8及以上版本操作系统均采用Systemd管理服务),由于Systemd的配置脚本中已经在docker的启动参数中指定了-H参数,会和daemon.json中的hosts配置产生冲突。所以对于这种情况下,需要在daemon.json配置中删除hosts配置项,改到systemd的配置文件中:

$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo cat > /etc/systemd/system/docker.service.d/override.conf <


之后docker便会监听0.0.0.0:2375这个tcp端口了。注意这个端口没有安全防护,因此请限定运行在受保护的网络环境中,不要暴露在互联网。

WORKDER_TYPE=docker MASTER_NODE=127.0.0.1 make setup-worker


这样便设置好了worker环境。



图形界面管理Host和chain



配置完毕之后,登录Master的web界面即可完成管理Host与添加chain的操作了。

最终一番配置之后,就可以在dashboard上看到主机与区块链的状态了:

1540176483105c10943ea9a


1540176483116446aea582a




小结



尽管Cello目前还在孵化中,部署上也不如其他产品级的软件部署方便(没有repo,没有service manager,需要clone源码使用脚本手动管理),并且未来可能还有变数。但是对于管理fabirc这里确实非常方便,利用docker部署的灵活性,可以方便的部署和管理多个版本的fabric(当前支持1.0, 1.1, 1.2三种版本网络)。相信这个项目在未来还是有不错的发展的。


章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。

attachments-2018-02-kL1zBfXx5a7ffd0b78798.jpg



  • 发表于 2018-10-22 10:49
  • 阅读 ( 2468 )
  • 分类:hyperledger

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
社区运营-小以

621 篇文章

作家榜 »

  1. 社区运营-小以 621 文章
  2. 社区运营-小链 238 文章
  3. 于中阳Mercina-zy 79 文章
  4. 涂晶 74 文章
  5. 李晓琼 44 文章
  6. 兄弟连区块链培训 42 文章
  7. 吴寿鹤 36 文章
  8. 刘旷 28 文章