搭建第一條Fabric網絡

上一篇博文我們已經將fabric的開發環境安裝好了,接下來就是搭建第一條fabric網絡。

一、進入~/go/src/github.com/hyperledger/fabric-samples/目錄下,切換分支:

git checkout release-1.0

進入first-network目錄下,目錄結構如下:

其中env文件存儲的是一些環境變量,base目錄下存儲的是docker-compose的公共服務,byfn.sh是啓動腳本,configtx.yaml和crypto-config.yaml可以根據我們之前生成的工具生成相應的配置文件放入到channel-artifacts以及crypto-config目錄下。四個docker-compose文件用於啓動網絡。scripts裏面存放了一些測試腳本,做一些有關創建通道和安裝鏈碼相關的工作。

二、生成證書以及相關的配置文件

/**mychannel是通道的名字,可以自定義*/
./byfn.sh -m generate -c mychannel

運行結果如下:

這個過程發生了什麼呢?我們來簡單地分析一下:

首先根據cryptogen生成了參與主體的msp證書,這裏有兩個主體org1.example.com和org2.example.com


##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
org1.example.com
org2.example.com

根據configtxgen生成創世區塊以及通道配置文件。

##########################################################
#########  Generating Orderer Genesis block ##############
##########################################################
2019-12-05 05:40:54.746 PST [common/configtx/tool] main -> INFO 001 Loading configuration
2019-12-05 05:40:54.798 PST [common/configtx/tool] doOutputBlock -> INFO 002 Generating genesis block
2019-12-05 05:40:54.801 PST [common/configtx/tool] doOutputBlock -> INFO 003 Writing genesis block

#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
2019-12-05 05:40:54.826 PST [common/configtx/tool] main -> INFO 001 Loading configuration
2019-12-05 05:40:54.848 PST [common/configtx/tool] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx
2019-12-05 05:40:54.852 PST [common/configtx/tool] doOutputChannelCreateTx -> INFO 003 Writing new channel tx

生成兩個組織的錨節點,錨節點是兩個組織對外的節點。

#################################################################
#######    Generating anchor peer update for Org1MSP   ##########
#################################################################
2019-12-05 05:40:54.863 PST [common/configtx/tool] main -> INFO 001 Loading configuration
2019-12-05 05:40:54.867 PST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2019-12-05 05:40:54.868 PST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update

#################################################################
#######    Generating anchor peer update for Org2MSP   ##########
#################################################################
2019-12-05 05:40:54.894 PST [common/configtx/tool] main -> INFO 001 Loading configuration
2019-12-05 05:40:54.907 PST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2019-12-05 05:40:54.907 PST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update

三、啓動網絡

首先用docker ps -a檢查環境是不是正常。

如果不想每次使用docker都帶上sudo,可以將當前用戶添加到docker的用戶組裏面,方法如下:

sudo groupadd docker     #添加docker用戶組
sudo gpasswd -a $USER docker     #將登陸用戶加入到docker用戶組中
newgrp docker     #更新用戶組
docker ps    #測試docker命令是否可以使用sudo正常使用

接着,正式啓動網絡:

./byfn.sh -m up -c mychannel 

此過程比較耗費時間比較長,而且在最後可能會報如下錯誤:

這是因爲我們使用docker-compose使用的鏡像tag是latest,但是latest現在對應的是1.0有些差異。可以參考一下兩種方法解決:

第一種:在運行byfn.sh之前先下載鏡像,命令如下:

docker pull hyperledger/fabric-tools:x86_64-1.0.0
docker tag hyperledger/fabric-tools:x86_64-1.0.0 hyperledger/fabric-tools:latest

docker pull hyperledger/fabric-orderer:x86_64-1.0.0
docker tag hyperledger/fabric-orderer:x86_64-1.0.0 hyperledger/fabric-orderer:latest

docker pull hyperledger/fabric-peer:x86_64-1.0.0
docker tag hyperledger/fabric-peer:x86_64-1.0.0 hyperledger/fabric-peer:latest

然後用依次此輸入以下命令:

./byfn.sh -m down -c mychannel 
./byfn.sh -m up -c mychannel 

第二種:運行byfn腳本的時候帶上版本參數

byfn.sh -m generate -c mychannel  -i 1.0.0
byfn.sh -m up -c mychannel  -i 1.0.0
byfn.sh -m down -c mychannel  -i 1.0.0

我採用的是第一種方法,可以正常啓動,啓動成功的標緻如下:

以上,我們就成功地搭建出了第一條fabric網絡,下一篇博客我們將討論一下啓動網絡時的日誌和實例代碼解析。

參考:

https://www.cnblogs.com/informatics/p/8276172.html

https://coding.imooc.com/learn/questiondetail/78716.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章