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

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

1

Cello的功能简介

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

  • 从头开始快速构建一个区块链即平台(BaaS)的服务

  • 支持可定制的区块链,如 Hyperledger fabric network v1.0.

  • 可以在裸机、虚拟云端(如虚拟机,vsphere Clouds等),或容器集群(如Docker, Swarm, Kubernates等)中管理一个区块链网络资源

  • 从dashboard中就可以完成检查系统状态,调整区块链数量,扩展资源等功能

典型的应用场景如下:

2

安装部署

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

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官方文档的来就好了。

$ 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 <<EOF[Service]ExecStart=ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375EOF$ sudo systemctl damon-reload$ sudo systemctl restart docker
复制代码

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

WORKDER_TYPE=docker MASTER_NODE=127.0.0.1 make setup-worker

这样便设置好了worker环境。

3

图形界面管理Host和chain

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

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

4

小结

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

本文作者:HiBlock区块链技术布道群-冯宇Ops

原文发布于简书

加微信baobaotalk_com,加入技术布道群

Blockathon|48小时极客竞赛,区块链马拉松等你挑战(上海)

时间:2018年10月19-21日

地点:(上海黄浦)露香园路1号(近淮海东路)P2

  • 招募50名开发者(识别下图二维码或点击“阅读原文”即可了解详情并报名)

北京blockathon回顾:

Blockathon(北京):48小时极客开发,区块松11个现场交付项目创意公开

成都blockathon回顾:

Blockathon2018(成都站)比赛落幕,留给我们这些区块链应用思考

以下是我们的社区介绍,欢迎各种合作、交流、学习:)

区块链100讲:Hyperledger Cello简介相关推荐

  1. 区块链100讲:据说,80%的人都搞不懂哈希算法

    2019独角兽企业重金招聘Python工程师标准>>> 前面的<区块链100讲>介绍了区块链.算力.挖矿等,几乎每一讲都会提到一个词哈希(Hashing).聊到区块链的时 ...

  2. 区块链100讲:不做码农做矿工,该怎么和爹妈解释

    说起区块链和比特币的时候都会提到一个词"挖矿",还有个角色叫"矿工",等等,区块链不是属于技术圈吗?怎么和挖矿扯上关系了?只听说过管IT圈儿的人叫码农,怎么还有 ...

  3. 区块链100讲:带你走进EOS的存储系统

    2019独角兽企业重金招聘Python工程师标准>>> 1 海量数据 在一个完全去中心化的区块链系统中,每个节点如果想验证某一笔交易是否正确,则必须下载完整的区块链数据,随着时间的推 ...

  4. 区块链100讲:梅克尔树保障区块链数据不可篡改,想换根就要砍树!

    2019独角兽企业重金招聘Python工程师标准>>> 区块链100讲上期我们讲了哈希算法和公开密钥算法,说到哈希算法提到了一个名词"Merkle tree",梅 ...

  5. 区块链100讲:Truffle——一个更简单的部署智能合约的方法

    本期<区块链100讲>我们将介绍一个更简单的部署智能合约的方法:Truffle. 1 什么是Truffle ? Truffle是针对基于以太坊的Solidity语言的一套开发框架.本身基于 ...

  6. 区块链100讲:V神·以太坊上的分片

    五月初,以太坊创始人"V神"Vitalik Buterin表示,以太坊的内部扩展解决方案--分片已经接近完成.以太坊分片旨在将以太坊分成几个并发网络,从而使整个网络更加高效地扩展, ...

  7. 区块链100讲:能够证明你是你的数字签名和多重签名

    随着区块链相关技术的创新和突破,很多有形或无形资产都将实现去中心化,数字资产将无处不在.要保护数字出版物版权,实现去中心化,解决业界多年来版权保护不力的难题.无论数字资产,还是数字出版版权,都是有明确 ...

  8. 区块链100讲:从村里的账本来看什么是区块链

    2019独角兽企业重金招聘Python工程师标准>>> 很久以前就有个想法,把区块链的技术和概念整理成一个体系化的知识图谱,方便大家查阅和学习,大话已说出去很久,却一直没有践行(pa ...

  9. 区块链100讲:Hyperledger Fabric 区块链多机部署

    区块链技术可以应用在很多领域,未来最有可能先在这些领域落地. 区块链技术是利用块链式数据结构来验证与存储数据.利用分布式节点共识算法来生成和更新数据.利用密码学的方式保证数据传输和访问的安全.利用由自 ...

最新文章

  1. AI科研绘图3:排版
  2. 关于Android模拟器访问本地地址(转)
  3. (转载)IP,主机名,域名
  4. Javascript面向对象编程(一):封装
  5. 【模拟】表达式求值(jzoj 1768)
  6. LFS、BLFS、ALFS、HLFS的区别详解
  7. 利用tensorflow构建AlexNet模型,实现小数量级的猫狗分类(只有train)
  8. mysql password() pam-mysql兼容性_pam_mysql认证ftp虚拟用户账号,且拥有不同的权限
  9. vue-router之嵌套路由
  10. 我的 Windows 电脑已经不用安全软件好多年了
  11. Mac系统MATLAB_R2018a软件CVX下载及安装
  12. 【VulnHub靶场】——HARRYPOTTER第三部: FAWKES
  13. javaweb基础打卡17
  14. 东京实验店开张!日本7-Eleven以脸部辨识付款商店
  15. Windows Server 2008启用禁用IE增强的安全配置
  16. Filter_过滤器
  17. 2020华为软挑热身赛代码开源-思路大起底(华为软件精英挑战赛编程闯关)
  18. 多个独立索引和联合索引的选择
  19. Mac上的经典播放器——Elmedia Player
  20. ?xml version=1.0 encoding=utf-8?appcommand time=1494385110doa

热门文章

  1. 【学习经典】时间序列处理(DatetimeIndex)
  2. 中国碱性电解二氧化锰市场行业动态与投资规划分析报告2022-2028年
  3. 段、页、页框、页表、页表项
  4. X509V3数字证书介绍
  5. kube-proxy ipvs模式详解
  6. win10如何手动强制关联默认文件打开方式应用
  7. RISC-V可能不会威胁英特尔,但Arm需警惕
  8. 电脑锁屏重新开启后无网络网络适配器属性没有电源管理选项
  9. javacv从入门到精通——第三章:基本使用
  10. 认识植物 - 桫椤(蕨类植物之王植物活化石)