多機部署后內(nèi)網(wǎng)ip分別為10.18.22.221,10.18.22.222,10.18.22.223,10.18.22.224,10.18.22.225.
其中10.18.22.221為orderer節(jié)點,其余4個為peer節(jié)點。
域名分別為orderer.com,peer0.org1.com,peer1.org1.com,peer0.org2.com,peer1.org2.com.
其中默認在peer0.org1.com,peer0.org2.com,peer1.org2.com上安裝了chaincode,在peer1.org1上未安裝chaincode。
成功啟動集群后,
一、在10.18.22.223(peer1.org1.example.com)上安裝智能合約chaincode過程如下:
1、通過下面命令進入10.18.22.223(peer1.org1.example.com)的容器
docker exec -it cli bash
進入容器后,默認路徑如下:
root@6e75c97a960a:/opt/gopath/src/github.com/hyperledger/fabric/peer#
2、執(zhí)行智能合約chaincode安裝命令
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
命令執(zhí)行后,日志過程如下:
2018-03-26 02:44:25.468 utc [msp] getlocalmsp -> debu 001 returning existing local msp 2018-03-26 02:44:25.469 utc [msp] getdefaultsigningidentity -> debu 002 obtaining default signing identity 2018-03-26 02:44:25.469 utc [chaincodecmd] checkchaincodecmdparams -> info 003 using default escc 2018-03-26 02:44:25.469 utc [chaincodecmd] checkchaincodecmdparams -> info 004 using default vscc 2018-03-26 02:44:28.521 utc [golang-platform] getcodefromfs -> debu 005 getcodefromfs github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 2018-03-26 02:44:30.351 utc [golang-platform] func1 -> debu 006 discarding goroot package fmt 2018-03-26 02:44:30.352 utc [golang-platform] func1 -> debu 007 discarding provided package github.com/hyperledger/fabric/core/chaincode/shim 2018-03-26 02:44:30.352 utc [golang-platform] func1 -> debu 008 discarding provided package github.com/hyperledger/fabric/protos/peer 2018-03-26 02:44:30.352 utc [golang-platform] func1 -> debu 009 discarding goroot package strconv 2018-03-26 02:44:30.352 utc [golang-platform] getdeploymentpayload -> debu 00a done 2018-03-26 02:44:30.356 utc [msp/identity] sign -> debu 00b sign: plaintext: 0a8a070a5c08031a0c088ebde1d50510…5f74fd270000ffffcef44f9b002c0000 2018-03-26 02:44:30.356 utc [msp/identity] sign -> debu 00c sign: digest: 9d17182bf883747b383970befd9c4debb0bb07adcadd5f0c3c4df5d9d57f12a0 2018-03-26 02:44:30.379 utc [chaincodecmd] install -> debu 00d installed remotely response:<status:200 payload:"ok" >
說明該chaincode已經(jīng)安裝成功。這個命令將chaincode的源碼安裝到該peer節(jié)點的文件系統(tǒng)中。
3、調(diào)用命令查詢chaincode
peer chaincode query -c $channel_name -n mycc -c \\\'{"args":["query","a"]}\\\’
調(diào)用該命令后,將會啟動智能合約容器。等待一段時間,將得到查詢結(jié)果。
root@6e75c97a960a:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode query -c mychannel -n mycc -c \\\'{"args":["query","a"]}\\\’ 2018-03-26 02:58:50.594 utc [msp] getlocalmsp -> debu 001 returning existing local msp 2018-03-26 02:58:50.594 utc [msp] getdefaultsigningidentity -> debu 002 obtaining default signing identity 2018-03-26 02:58:50.594 utc [chaincodecmd] checkchaincodecmdparams -> info 003 using default escc 2018-03-26 02:58:50.595 utc [chaincodecmd] checkchaincodecmdparams -> info 004 using default vscc 2018-03-26 02:58:50.595 utc [msp/identity] sign -> debu 005 sign: plaintext: 0a95070a6708031a0c08eac3e1d50510…6d7963631a0a0a0571756572790a0161 2018-03-26 02:58:50.595 utc [msp/identity] sign -> debu 006 sign: digest: b4b927d16a7b0b16747b264e0336f79769f5f841f67b1c70c2b75431acd1e168 query result: 90 2018-03-26 02:58:50.618 utc [main] main -> info 007 exiting…..
4、新建一個命令窗口,通過docker-ps 查詢,已經(jīng)能夠查到,新安裝的鏈碼容器。
[root@localhost ~]# docker ps container id image command created status ports names d20a155e430e dev-peer1.org1.example.com-mycc-1.0 "chaincode -peer.add…" 18 seconds ago up 16 seconds dev-peer1.org1.example.com-mycc-1.0 6e75c97a960a hyperledger/fabric-tools "/bin/bash&quo