區塊鏈100講:Hyperledger Cello簡介

image

Hyperledger Cello是超級帳本項目下面的一個子項目,提供按需部署的功能,能夠將區塊鏈部署在各類裸機、虛擬機、容器等環境中。該項目最初由IBM發起,目前獲得了Soramitsu, 華爲,和Intel的贊助。node

該項目目前還在孵化中,將來可能還存在較大變化,本篇內容咱們將對這個工具進行快速概覽。git

1

Cello的功能簡介

Cello能夠容易的幫助用戶實現:web

  • 從頭開始快速構建一個區塊鏈即平臺(BaaS)的服務docker

  • 支持可定製的區塊鏈,如 Hyperledger fabric network v1.0.json

  • 能夠在裸機、虛擬雲端(如虛擬機,vsphere Clouds等),或容器集羣(如Docker, Swarm, Kubernates等)中管理一個區塊鏈網絡資源api

  • 從dashboard中就能夠完成檢查系統狀態,調整區塊鏈數量,擴展資源等功能安全

典型的應用場景以下:微信

image

2

安裝部署

整個Cello的架構圖以下所示:網絡

image

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上看到主機與區塊鏈的狀態了:

image

image

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名開發者(識別下圖二維碼或點擊「閱讀原文」便可瞭解詳情並報名)

image

北京blockathon回顧:

Blockathon(北京):48小時極客開發,區塊鬆11個現場交付項目創意公開

成都blockathon回顧:

Blockathon2018(成都站)比賽落幕,留給咱們這些區塊鏈應用思考

如下是咱們的社區介紹,歡迎各類合做、交流、學習:)

image

相關文章
相關標籤/搜索