Hyperledger Cello是超級帳本項目下面的一個子項目,提供按需部署的功能,能夠將區塊鏈部署在各類裸機、虛擬機、容器等環境中。該項目最初由IBM發起,目前獲得了Soramitsu, 華爲,和Intel的贊助。node
該項目目前還在孵化中,將來可能還存在較大變化,本篇內容咱們將對這個工具進行快速概覽。git
Cello能夠容易的幫助用戶實現:web
從頭開始快速構建一個區塊鏈即平臺(BaaS)的服務docker
支持可定製的區塊鏈,如 Hyperledger fabric network v1.0.json
能夠在裸機、虛擬雲端(如虛擬機,vsphere Clouds等),或容器集羣(如Docker, Swarm, Kubernates等)中管理一個區塊鏈網絡資源api
從dashboard中就能夠完成檢查系統狀態,調整區塊鏈數量,擴展資源等功能安全
典型的應用場景以下:微信
整個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環境。
配置完畢以後,登陸Master的web界面便可完成管理Host與添加chain的操做了。
最終一番配置以後,就能夠在dashboard上看到主機與區塊鏈的狀態了:
儘管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
北京blockathon回顧:
Blockathon(北京):48小時極客開發,區塊鬆11個現場交付項目創意公開
成都blockathon回顧:
Blockathon2018(成都站)比賽落幕,留給咱們這些區塊鏈應用思考
如下是咱們的社區介紹,歡迎各類合做、交流、學習:)