通道與鏈碼操作
以下操作均于centos7.6虛擬機環(huán)境使用root用戶完成,可以根據(jù)具體需求進行選擇實體機與不同用戶選擇
該教程(搭建第一個fabric網(wǎng)絡(luò)1.4.2版本)基本完全基于官方文檔進行,適用于缺乏了解的新手與感興趣的人群
官方文檔地址:
1.創(chuàng)建并加入應(yīng)用通道
使用之前生成的通道配置交易生成應(yīng)用通道配置塊并加入通道。
# 發(fā)送交易獲取配置塊
peer channel create -o orderer0.orderer.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer0.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem
# 加入通道
peer channel join -b mychannel.block
org1的peer發(fā)送mychannel.tx后,可以在org2的cli上通過fetch命令獲取mychannel.block并執(zhí)行加入通道的命令。
peer channel fetch 0 mychannel.block -c mychannel --orderer orderer1.orderer.com:7050
--tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer1.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem
2.更新錨節(jié)點配置
使用之前生成的錨節(jié)點配置進行錨節(jié)點配置更新。
# org1 cli執(zhí)行
peer channel update -o orderer0.orderer.com:7050 -c mychannel -f ./channel-artifacts/Org1anchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer0.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem
# org2 cli執(zhí)行
peer channel update -o orderer1.orderer.com:7050 -c mychannel -f ./channel-artifacts/Org2anchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer1.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem
執(zhí)行完成后觀察peer日志可以看到相關(guān)信息。
3.安裝與實例化鏈碼
在org1 peer上安裝和實例化鏈碼到mychannel上,org2 peer上安裝就可以進行調(diào)用了。(使用官方提供的簡易版轉(zhuǎn)賬鏈碼)
# 安裝
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/
# 實例化
peer chaincode instantiate -o orderer0.orderer.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer0.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a", "10000", "b","20000"]}' -P "OR('Org1.peer','Org2.peer')"
# 這里指定了 -P 背書策略為OR 如果使用AND 則org2 peer必須安裝鏈碼并且在發(fā)送請求時必須帶上org2的peer
4.鏈碼調(diào)用
# org1 cli驗證
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
peer chaincode invoke -o orderer0.orderer.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer0.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org1.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.com/peers/peer0.org1.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'
# org2 cli驗證
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
peer chaincode invoke -o orderer1.orderer.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/orderer.com/orderers/orderer1.orderer.com/msp/tlscacerts/tlsca.orderer.com-cert.pem -C mychannel -n mycc --peerAddresses peer0.org2.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.com/peers/peer0.org2.com/tls/ca.crt -c '{"Args":["invoke","a","b","10"]}'
網(wǎng)絡(luò)的基礎(chǔ)搭建到這里就結(jié)束了,接下來會記錄如何向通道中添加機構(gòu)以及如何使用fabric-ca,敬請期待。