1. 程式人生 > >超級賬本專案在centos7環境下基於Docker安裝與部署

超級賬本專案在centos7環境下基於Docker安裝與部署

Hyperledger 專案是開源介面向開放、標準區塊鏈技術的首個重要探索,在 Linux 基金會的支援下,吸引了眾多科技和金融巨頭的參與。 

本文將介紹 hyperledger 專案的歷史,並以核心的 fabric 專案為例,講解如何快速安裝部署和應用區塊鏈系統。專案基於Docker進行安裝與部署,關於Docker在Centos中的安裝與部署請參考博文《Centos下Docker使用映象和DockerFile方式搭建JAVA Web 開發環境》

親試作業系統版本:centos7或centos7.1或centos7.2都可以

區塊鏈開源專案彙總:

l  微軟開源區塊鏈平臺專案 Bletchley

l  linux開源專案 Hyperledger Fabric

l  分散式總賬區塊鏈工具 Openchain

l  點對點的多型數字資產交易系統 BitShares

區塊鏈簡單介紹

區塊鏈已經成為當下最受人關注的開源技術,有人說它將顛覆金融行業的未來。然而對很多人來說,區塊鏈技術難以理解和實現,而且缺乏統一的規範。 

2015 年 12 月,Linux 基金 會牽頭,聯合 30 家初始成員(包括 IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco 等),共同 宣告 了 Hyperledger 專案的成立。該專案試圖打造一個透明、公開、去中心化的超級賬本專案,作為區塊鏈技術的開源規範和標準,讓更多的應用能更容易的建立在區塊鏈技術之上。

專案官方資訊網站在 hyperledger.org, 目前已經有超過 100 家全球知名企業和機構(大部分均為各自行業的領導者)宣佈加入 Hyperledger 專案,其中包括 30 多家來自中國本土的企業,包括艾億新融旗下的艾億數融科技公司(2016.05.19)、Onchain(2016.06.22)、比鄰共贏(Belink)資訊科技有限公司(2016.06.22)、BitSE(2016.06.22)、布比(2016.07.27)、三一重工(2016.08.30)、萬達金融(2016.09.08)、華為(2016.10.24)等。 

如果說以比特幣為代表的貨幣區塊鏈技術為 1.0,以太坊為代表的合同區塊鏈技術為 2.0,那麼實現了完備的許可權控制和安全保障的 Hyperledger 專案毫無疑問代表著 3.0 時代的到來。 

IBM 貢獻了數萬行已有的 OpenBlockchain 程式碼,Digital Asset 則貢獻了企業和開發者相關資源,R3 貢獻了新的金融交易架構,Intel 也剛貢獻了跟分散式賬本相關的程式碼。 

Hyperledger 社群由技術委員會(TechnicalSteering Committee,TSC)指導,首任主席由來自 IBM 開源技術部 CTO 的 Chris Ferris 擔任,管理組主席則由來自 Digital Asset Holdings 的 CEO Blythe Masters 擔任。另外,自 2016 年 5 月起,Apache 基金會創始人 BrianBehlendorf 擔任超級賬本專案的首位執行董事。2016 年 12 月,中國技術工作組正式成立,負責本土社群組織和技術引導工作。官方網站還提供了十分詳細的組織資訊。

該專案的出現,實際上宣佈區塊鏈技術已經不單純是一個開源技術了,已經正式被主流機構和市場認可;同時,Hyperledger 首次提出和實現的完備許可權管理、創新的一致性演算法和可拔插的框架,對於區塊鏈相關技術和產業的發展都將產生深遠的影響。

主要專案

程式碼託管在 Gerrit 和 Github(自動從 gerrit 上同步)上


目前主要包括三大賬本平臺專案和若干其它專案

賬本平臺專案:

fabric:包括 fabric 和 fabric-api、fabric-sdk-node、fabric-sdk-py等,目標是區塊鏈的基礎核心平臺,支援 pbft 等新的 consensus 機制,支援許可權管理,最早由 IBM 和 DAH 發起;

sawtooth Lake:包括 arcade、core、dev-tools、validator、mktplace 等。是 Intel 主要發起和貢獻的區塊鏈平臺,支援全新的基於硬體晶片的共識機制 Proof of Elapsed Time(PoET)。 

Iroha:賬本平臺專案,主要由 Soramitsu發起和貢獻。

其它專案:blockchain-explorer:提供 Web 操作介面,通過介面快速檢視查詢繫結區塊鏈的狀態(區塊個數、交易歷史)資訊等。

目前,所有專案均處於孵化(Incubation)狀態。

理論介紹完了,接下來滿滿乾貨開始了。。。。

一、安裝docker

  • 執行程式碼如下:
curl -sSL https://get.daocloud.io/docker | sh
  • 安裝完成後,檢視安裝情況:
docker -v


  • 修改docker服務配置,
  • 服務配置的意思是 開啟docker遠端配置,如下:
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"
  • 重啟docker服務
sudo service docker restart

二、安裝docker-compose

先安裝python-pip,具體安裝步奏如下:

  • 1.首先安裝epel擴充套件源:
sudo yum -y install epel-release
  • 2.然後安裝python-pip
sudo yum -y install python-pip
  • 3.安裝完成後,清除以下快取 cache
sudo yum clean all

下面開始安裝docker-compose

  • 1.安裝docker-compose:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • chmod +x /usr/local/bin/docker-compose
  • 2.檢視安裝情況: 

配置以下docker映象加速,目的是下載映象速度更快:

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://860eaa91.m.daocloud.io

重啟docker服務:

sudo service docker restart

三、下載映象

 docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview \
  && docker pull hyperledger/fabric-membersrvc:x86_64-0.6.1-preview \
  && docker pull yeasy/blockchain-explorer:latest \
  && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-peer \
  && docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-baseimage \
  && docker tag hyperledger/fabric-membersrvc:x86_64-0.6.1-preview hyperledger/fabric-membersrvc
  • 下載完成後,檢視下載映象


四、安裝git

1.安裝依賴包:

sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

2.下載git原始碼並解壓安裝:

$ wget https://github.com/git/git/archive/v2.3.0.zip
$ unzip v2.3.0.zip
$ cd git-2.3.0

3.編譯安裝:

make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install

4.修改環境變數:

sudo vim /etc/profile
然後在檔案的最後一行,新增下面的內容,然後儲存退出。
export PATH=/usr/local/git/bin:$PATH

5.使用source命令立即儲存:

source /etc/profile

6.檢視版本

git version 

五、使用PBFT模式

PBFT 是經典的分散式一致性演算法,也是 hyperledger 目前最推薦的演算法,該演算法至少需要 4 個節點。

  • 1.首先,下載 Compose 模板檔案。
git clone https://github.com/yeasy/docker-compose-files
  • 2.檢視下載情況:


  • 3.進入 hyperledger/0.6/pbft 目錄,檢視包括若干模板檔案


  • 4.快速啟動一個 4 個 PBFT 節點的叢集:
docker-compose -f 4-peers.yml up

六、開始部署chaincode

  • 叢集啟動後,進入一個 VP 節點。以 pbft 模式為例,節點名稱為 pbft_vp0_1
docker exec -it pbft_vp0_1 bash
  • 部署example02
 peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
  • 記錄到環境變數 CC_ID 中。
CC_ID="ee5b24a1f17c356dd5f6e37307922e39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3ab1812590cd0f78539"
  • 查詢 chaincode
peer chaincode query -n ${CC_ID} -c '{"Function": "query", "Args": ["a"]}'
  • 呼叫 chaincode
peer chaincode invoke -n ${CC_ID} -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'
  • 再次查詢a的值
peer chaincode query -n ${CC_ID} -c '{"Function": "query", "Args": ["a"]}'

到此已經完成超級賬本的 轉賬的例項,每轉一次,都會記錄一個塊。

關注微信公眾號和今日頭條,精彩文章持續更新中。。。。。