超級賬本簡介
2015年12月, 由Linux基金會牽頭, IBM、Intel、Cisco等共同宣布了Hyperledger聯合項目成立.
超級賬本項目為透明、公開、去中心化的企業級分散式總帳技術提供開源參考實現
目前超級賬本社區中已有
- 艾億數融、OnChain、比鄰共贏、BitSE、布比、三一重工、萬達、華為等諸多國內企業加入
超級賬本首次將區塊鏈技術引入到分布式聯盟賬本的應用情境中, 為未來基於區塊鏈技術打造高效率的商業網路打下基礎
超級賬本由面向不同目的和情境的八大頂級子項目構成:
Fabric: 目標是區塊鏈的基礎核心平台,支援PBFT(拜占庭容錯演算法)等新的共識機制, 支援許可權管理
Sawtooth: 是Intel 主要發起和貢獻的區塊鏈平台. 支援全新的基於硬體晶片的共識機制Proof of Elapsed Time(PoET)
iroha: 賬本平台項目, 基於C++實現, 帶有面向Web和Mobile的特性
Blockchain Explorer: 提供Web操作介面, 可查看查詢繫結區塊鏈的狀態(區塊個數, 交易曆史)資訊等
Cello: 提供區塊鏈平台的部署和運行時管理功能, 應用開發人員無需關心如何搭建和維護區塊鏈
Indy: 提供基於分散式總帳技術的數字身份管理機制
Composer: 提供面向鏈碼開發的進階語言支援, 自動產生鏈碼等
Burrow: 提供以太坊虛擬機器的支援, 實現支援高效交易的帶許可權的區塊鏈平台
Fabric是最早加入到超級賬本項目中的頂級項目, 面向企業的分散式總帳平台, 引入了許可權管理, 支援可插拔、可擴充, 由IBM、DIH等企業於2015年底提交到社區, 是首個面向聯盟鏈情境的開源項目
Fabric基於GO語言實現, 發行1.1.0版本
項目地址: https://github.com/hyperledger/fabric
環境搭建(ubuntu系統)
快速入門: http://hyperledger-fabric.readthedocs.io/en/release-1.1/getting_started.html
前提
安裝git
$ sudo apt update$ sudo apt install git
安裝curl
$ sudo apt install curl
安裝vim
$ sudo apt install vim
安裝Docker
$ sudo apt update$ docker --version$ sudo apt install docker.io
查看Docker版本資訊
$ docker --version
輸出: Docker version 1.13.1, build 092cba3
安裝Docker Compose
$ docker-compose --version$ sudo apt install docker-compose
查看DockerCompose版本資訊
$ docker-compose --version
輸出: docker-compose version 1.8.0, build unknown
Golang
Fabric1.1.0版本要求Go1.9+
Fabric1.0.0版本要求Go1.7+
自行上網下載golang,安裝,並設定好環境變數
安裝Node與npm
安裝nvm
$ sudo apt update$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash$ export NVM_DIR="$HOME/.nvm"$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
安裝Node
$ nvm install v8.11.1
檢查Node版本
$ node -v
輸出: v8.11.1
檢查npm版本
$ npm -v
輸出: 5.6.0
Hyperledger Fabric Samples 下載安裝
建立一個空目錄
$ mkdir hyfa$ cd hyfa
下載方式一:
建立檔案bootstrap.sh
$ vim bootstrap.sh
將https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh
中的內容拷貝儲存退出
賦予bootstrap.sh可執行許可權並運行
$ chmod +x bootstrap.sh
配置docker加速器
配置docker加速器的目的是為了在下載docker鏡像檔案時加速
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8890cb8b.m.daocloud.io
重啟docker服務
$ sudo systemctl restart docker.service
執行bootstrap.sh
確定網路穩定,否則會導致各種問題,例如下載到一半時網路逾時,下載失敗等等
$ sudo ./bootstrap.sh 1.1.0
下載完成後, 查看相關輸出內容, 如果下載有失敗的鏡像, 可再次執行 $ sudo ./bootstrap.sh 1.1.0
命令
下載方式二:
建議使用方式一進行下載
配置docker加速器,
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8890cb8b.m.daocloud.io
重啟docker服務
$ sudo systemctl restart docker.service$ curl https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh | bash -s 1.1.0
安裝完成後輸出:
hyperledger/fabric-ca latest 72617b4fa9b4 5 weeks ago 299 MBhyperledger/fabric-ca x86_64-1.1.0 72617b4fa9b4 5 weeks ago 299 MBhyperledger/fabric-tools latest b7bfddf508bc 5 weeks ago 1.46 GBhyperledger/fabric-tools x86_64-1.1.0 b7bfddf508bc 5 weeks ago 1.46 GBhyperledger/fabric-orderer latest ce0c810df36a 5 weeks ago 180 MBhyperledger/fabric-orderer x86_64-1.1.0 ce0c810df36a 5 weeks ago 180 MBhyperledger/fabric-peer latest b023f9be0771 5 weeks ago 187 MBhyperledger/fabric-peer x86_64-1.1.0 b023f9be0771 5 weeks ago 187 MBhyperledger/fabric-javaenv latest 82098abb1a17 5 weeks ago 1.52 GBhyperledger/fabric-javaenv x86_64-1.1.0 82098abb1a17 5 weeks ago 1.52 GBhyperledger/fabric-ccenv latest c8b4909d8d46 5 weeks ago 1.39 GBhyperledger/fabric-ccenv x86_64-1.1.0 c8b4909d8d46 5 weeks ago 1.39 GBhyperledger/fabric-zookeeper latest 92cbb952b6f8 2 months ago 1.39 GBhyperledger/fabric-zookeeper x86_64-0.4.6 92cbb952b6f8 2 months ago 1.39 GBhyperledger/fabric-kafka latest 554c591b86a8 2 months ago 1.4 GBhyperledger/fabric-kafka x86_64-0.4.6 554c591b86a8 2 months ago 1.4 GBhyperledger/fabric-couchdb latest 7e73c828fc5b 2 months ago 1.56 GBhyperledger/fabric-couchdb x86_64-0.4.6 7e73c828fc5b 2 months ago 1.56 GB
添加環境變數(可選)
後期可以使用相應的相對路徑
$ export PATH=<path to download location>/bin:$PATH
注: <path to download location>表示下載的fabric-samples
檔案目錄所在路徑
例: $ export PATH=$HOME/hyfa/fabric-samples/bin:$PATH
HyperLedger Fabric
環境搭建完成