打開Hyperledger Fabric在線開發文檔:https://hyperledger-fabric.readthedocs.io
建議在Mac或Linux環境下操作,因為文檔基本上是按照Mac或Linux下操作寫的,windows設置起來會更費事一些,以下操作都是在Mac下的:
第一步:構建系統運行環境
1.1 安裝cURL (cURL是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應用在Unix、多種Linux發行版中,並且有DOS和Win32、Win64下的移植版本。)
安裝前先用以下命令檢查一下Mac下是否已經安裝了curl,如果有輸出相關的版本信息說明是已經安裝了。
curl --version
如沒有安裝可用以下命令安裝;
brew install curl
1.2 安裝docker,Fabric的chaincode是運行在docker里的,可以從這里找到對於的系統版本然后下載: https://www.docker.com/community-edition#download
安裝好后在termianl檢查docker和docker-compose的版本,版本號需大於等於version 17.03.0-ce
docker --version
docker-compose --version
1.3 設定go path,先運行以下命令,檢查是否有設定go path
echo $GOPATH
如果沒有輸出則運行以下命令設定,設定好的go path為 ~/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
1.4 安裝node.js, https://nodejs.org/en/download/
保證版本在version 6.9之后
1.5 安裝node.js會自動安裝npm,保證版本大於3.10.10
第二步:getting start
2.1 在用戶目錄下建一個Hyperledger目錄,然后進入到這個目錄下
mkdir ~/Hyperledger
cd ~/Hyperledger
2.2 安裝Hyperledger Fabic和Docker image
目前Hyperledger Fabic最新版本是1.0.5,官方教程上會叫用戶執行下面命令來安裝
curl -sSL https://goo.gl/byy2Qj | bash -s 1.0.5
但是我試過幾次都是timeout,原因可能在於url用的是google短網址,國內被牆,那么改成下面的命令就可以了,如果要安裝特定版本只要修改下面命令行中的版本號即可
curl https://raw.githubusercontent.com/hyperledger/fabric/v1.0.5/scripts/bootstrap.sh | bash -s 1.0.5
安裝完成后在~/Hyperledger目錄下會生成一個bin目錄
命令行執行完后最終會列出docker image list (需要點時間,在這段時間里可以同步做2.3步驟)
后續也可以通過以下命令查看docker images
docker images
2.3 下載Hyperledger Fabic Samples
git clone https://github.com/hyperledger/fabric-samples.git cd fabric-samples
第三步:構建第一個Hyperledger Fabric網絡(參照官方文檔https://hyperledger-fabric.readthedocs.io/en/release/build_network.html)
3.1 在~/Hyperledger/fabric-samples目錄下有一個叫first-network的,就是我們用來構建第一個fabric網絡的示例代碼
3.2 把bin目錄下的內容全部拷貝到frist-network目錄中
3.3 在first-network目錄下有一個byfn.sh文件(byfn即是build your first network的首字母),是一些shell命令幫助我們創建第一個hyperledger fabric網絡。具體作用為利用Docker建立2家機構,4個節點,1個排序節點,並且將4個節點組成一個channel,實例化並執行chaincode。
3.4 用命令行進入到first-network目錄中
cd ~/Hyperledger/fabric-samples/first-network/
執行以下命令
./byfn.sh -m generate
將詢問是否安裝默認的配置設置channel名為mychannel,CLI timeout時間為10,回答y:
命令行執行結束后去first-network目錄下會看到多了一個crypto-config目錄,里面就包括網絡中機構和節點的配置信息,都是些認證文件,所以不要改變里面任何東西。
3.5 啟動網絡
./byfn.sh -m up
報錯了,重試了幾次,已經在社區發問,還沒解決。我已經是嚴格按照官方文檔來做的了,感覺是哪里有bug,暫時可以先玩在線的playground。
Shimingbookmini:first-network Shiming$ ./byfn.sh -m up Starting with channel 'mychannel' and CLI timeout of '10' Continue (y/n)? y proceeding ... Creating network "net_byfn" with the default driver Pulling orderer.example.com (hyperledger/fabric-orderer:latest)... ERROR: manifest for hyperledger/fabric-orderer:latest not found ERROR !!!! Unable to start network Error response from daemon: No such container: cli