接下來,就是本文的重點,如何使用編譯出來的可執行程序及相關工具,來搭建一個 fabric 區塊鏈網絡,并實現鏈碼的部署以及測試。
分別在五臺虛擬機中創建目錄/etc/hyperledger/fabric,以下的命令 全部在該目錄下執行,并且需要設置 fabric 網絡執行的環境變量:
$FABRIC_CFG_PATH=/etc/hyperledger/fabric
1. 配置 fabric 網絡用戶拓撲關系
?

Crypto-config.yaml
該配置文件,包含一個 orderer 節點,以及兩個 peer組織,兩個 peer 組織又分別包含了兩個 peer 節點。
cryptogen generate --config=./crypto-config.yaml --output ./crypto-config
執行命令后,會在當前目錄下生成文件夾 crypto-config,包含節點用戶的秘鑰以及證書文件。
???
2. 配置Orderer 節點的啟動創世區塊,新建通道交易的相關配置

configtx.yaml
configtxgen -profile TwoOrgsOrdererGenesis -outputBlock genesis.block
configtxgen -profile TwoOrgsChannel -outputCreateChannelTx testchannel.tx -channelID testchannel
configtxgen –profile TwoOrgsChannel
–outputAnchorPeersUpdate ./Org1MSPanchors.tx –channelID testchannel –asOrg Org1MSP
configtxgen –profile TwoOrgsChannel
–outputAnchorPeersUpdate ./Org2MSPanchors.tx –channelID testchannel –asOrg Org2MSP
genesis.block、testchannel.tx、Org1MSPanchors.tx、Org2MSPanchors.tx
???
3. 設置虛擬機 Hosts 文件
由于 fabric 網絡啟動相關的配置文件中,與網絡地址相關的信息都是填寫的域名,所以需要在 hosts 文件中配置域名與 ip 的對應關系,在我們這次的測試環境中處理 orderer 節點,其他的4個 peer 節點的虛擬機都需要配置相關的 hosts 信息:
10.121.60.1 orderer.test.com
10.121.60.2 peer0.org1.test.com
10.121.60.3 peer1.org1.test.com
10.121.60.4 peer0.org2.test.com
10.121.60.5 peer1.org2.test.com
其中域名是根據 cryprto-config.yaml 的配置信息得來,后續的配置文件會詳細說明
4. 配置 orderer 啟動環境
在 orderer 節點的虛擬機配置 orderer 節點啟動相關配置信息 orderer.yaml,并保存在/etc/hyperledger/fabric 目錄下。相關配置文件內容見附件
從 cypto-config 文件夾下,拷貝 orderer 節點的秘鑰以及證書文件至 fabric 啟動環境變量目錄下:
cp –r ./crypto-config/ordererOrganizations/test.com/orderers/orderer.test.com/msp ./
cp –r ./crypto-config/ordererOrganizations/test.com/orderers/orderer.test.com/tls ./
根據前文的操作,fabric 網絡 orderer 節點的執行環境目錄下必須有以下文件及文件夾:
./crypto-config、./msp、./tls、orderer.yaml、genesis.block
啟動 orderer 節點:orderer start
5. 配置 peer 啟動環境
在 peer 節點的虛擬機配置 peer 節點啟動相關配置信息 core.yaml,并保存在/etc/hyperledger/fabric 目錄下。相關配置文件內容見附件。
從 crypto-config 文件夾下,拷貝 peer 節點的秘鑰以及證書文件至 fabric 啟動環境變量目錄下:
cp –r ./crypto-config/peerOrganizations/org1.test.com/peers/peer0.org1.test.com/msp ./
cp –r ./crypto-config/peerOrganizations/org1.test.com/peers/peer0.org1.test.com/tls ./
注意標記部分應該在對應的目錄下拷貝對應的文件信息(可以參考 hosts 配置信息的內容區分)
根據前文的操作,fabric 網絡 peer 節點的執行環境目錄下必須有以下文件及文件夾:
./crypto-config.tx、./msp、./tls、core.yaml、channel.tx 、 core.yaml、
Org1MSPanchors.tx(.2虛擬機)、
Org2MSPanchors.tx(.4虛擬機)
啟動 peer 節點:peer node start
注意,拷貝 msp、tls 文件夾的動作可以不需要操作,只需要在對應的 orderer.yaml 以及 core.yaml 配置文件中設置相應的路徑即可,這里為了能夠與附件中的配置信息一致,故把相應的秘鑰與證書文件拷貝至fabric 網絡執行環境變量的目錄下
6. 創建應用通道
設置相應環境變量(根據相應環境修改配置)**
CORE_PEER_LOCALMSPID=”Org1MSP”
CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/crypto-config \
/peerOrganizations/org1.test.com/users/Admin@org1.test.com/msp
執行命令創建應用通道
peer channel create
-o orderer.test.com:7050
-c testchannel
-f ./channel.tx
--tls true
--cafile /etc/hyperledger/fabric/crypto-config
/ordererOrganizations/test.com/orderers
/orderer.test.com/msp/tlscacerts
/tlsca.test.com-cert/pem
命令執行成功以后,會在當前目錄下生成 應用通道的創世區塊testchannel.block 文件,只有使用該文件,才可以加入對應的應用通道。使用 scp命令分發至其他3臺 peer 節點虛擬機的 fabric 網絡執行環境變量下(/etc/hyperledger/fabric)。
7. 加入應用通道
執行命令加入應用通道:
peer channel join –b testchannel.block
命令執行成功后,會看到提示信息:
Peer joined the channel!
加入應用通道的peer 節點虛擬機都可以通過終端命令查看加入的通過信息,如圖:

加入通道
8. 更新錨節點配置
執行命令更新負責代表組織與其他節點通信的錨節點:
peer channel update
-o orderer.test.com:7050
-c testchannel
-f ./Org1MSPanchors.tx
--tls true
--cafile /etc/hyperledger/fabric/crypto-config
/ordererOrganizations/test.com/orderers
/orderer.test.com/msp/tlscacerts
/tlsca.test.com-cert/pem
錨節點負責代表組織與其他組織中的節點進行 Gossip 通信。