1. 程式人生 > >Fabric Dev開發模式的搭建測試過程

Fabric Dev開發模式的搭建測試過程

利用 pan order gossip erro instant 只需要 led p地址

在利用Fabric開發Chaincode的時候,調試Chaincode顯得尤為不方便,因為Chaincode正常應該運行在Docker容器中,每次修改Chaincode後想要使其更改生效必須得對Chaincode進行升級重新實例化,給我們的開發調試帶來了很大的不便。下面給大家介紹一下如何啟動並利用Dev模式來開發調試Chaincode。

1、從github上clone Hyperledger Fabric的源代碼到本地,切換進入fabric目錄,執行如下命令make可執行文件

make release

將$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin加入 ~/.profile

中,執行 source ~/.profile 生效

2、啟動orderer

ORDERER_GENERAL_GENESISPROFILE=SampleDevModeSolo orderer
ORDERER_GENERAL_GENESISPROFILE=SampleDevModeSolo nohup orderer >/dev/null 2>&1 &  #後臺啟動

3、啟動peer

peer node start --peer-chaincodedev=true
nohup peer node start --peer-chaincodedev=true >/dev/null 2>&1 &  #後臺啟動

4、用configtxgen工具生成通道交易配置文件用於創建通道

configtxgen -channelID ch1 -outputCreateChannelTx ch1.tx -profile SampleSingleMSPChannel
configtxgen -channelID ch2 -outputCreateChannelTx ch2.tx -profile SampleSingleMSPChannel

5、創建通道ch1和ch2

peer channel create -o 127.0.0.1:7050 -c ch1 -f ch1.tx
peer channel create 
-o 127.0.0.1:7050 -c ch2 -f ch2.tx

6、加入通道

peer channel join -b ch1.block
peer channel join -b ch2.block

7、自此,peer跟orderer就已經建立了關系,可以啟動我們要調試的鏈碼了

cd examples/chaincode/go/chaincode_example02
go build -o example02
CORE_PEER_ADDRESS=10.0.2.15:7052 CORE_CHAINCODE_ID_NAME=mycc:0 ./example02
  
註意:在dev模式下,CORE_PEER_ADDRESS這個參數不能用127.0.0.1,而應該用啟動peer時候實例化Gossip所對應的ip地址
2018-06-21 03:48:21.626 UTC [gossip/gossip] start -> INFO 01b Gossip instance 10.0.2.15:7051 started

否則會在啟動鏈碼的時候報錯,具體報錯信息如下:
2018-06-21 03:52:43.648 UTC [shim] SetupChaincodeLogging -> INFO 002 Chaincode (build level: ) starting up ...
2018-06-21 03:52:46.654 UTC [shim] userChaincodeStreamGetter -> ERRO 003 context deadline exceeded error trying to connect to local peer

8、在peer上安裝註冊要調試的Chaincode

peer chaincode install -n mycc -v 0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

9、在peer上實例化Chaincode

peer chaincode instantiate -n mycc -v 0 -c ‘{"Args":["init","a","100","b","200"]}‘ -o 127.0.0.1:7050 -C ch1
peer chaincode instantiate -n mycc -v 0 -c ‘{"Args":["init","a","100","b","200"]}‘ -o 127.0.0.1:7050 -C ch2

10、測試調用Chaincode

peer chaincode invoke -n mycc -c ‘{"Args":["invoke","a","b","10"]}‘ -o 127.0.0.1:7050 -C ch1
peer chaincode invoke -n mycc -c ‘{"Args":["invoke","a","b","10"]}‘ -o 127.0.0.1:7050 -C ch2

11、測試查詢Chaincode

peer chaincode query -n mycc -c ‘{"Args":["query","a"]}‘ -o 127.0.0.1:7050 -C ch1
peer chaincode query -n mycc -c ‘{"Args":["query","a"]}‘ -o 127.0.0.1:7050 -C ch2

以上就是Fabric Dev模式下開發調試Chaincode的基本步驟,如果我們調試的Chaincode本地做了修改,只需要將第7步中修改過後的Chaincode重新編譯,然後重新啟動。直接調用即可生效,而無需再次對peer側的Chaincode進行升級實例化等操作,會大大提高我們開發調試Chaincode的效率,希望能夠對大家有所幫助。

Fabric Dev開發模式的搭建測試過程