通道与链码操作
以下操作均于centos7.6虚拟机环境使用root用户完成,可以根据具体需求进行选择实体机与不同用户选择
该教程(搭建第一个fabric网络1.4.2版本)基本完全基于官方文档进行,适用于缺乏了解的新手与感兴趣的人群
官方文档地址:
1.创建并加入应用通道
使用之前生成的通道配置交易生成应用通道配置块并加入通道。
# 发送交易获取配置块
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发送mychannel.tx后,可以在org2的cli上通过fetch命令获取mychannel.block并执行加入通道的命令。
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.更新锚节点配置
使用之前生成的锚节点配置进行锚节点配置更新。
# org1 cli执行
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执行
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
执行完成后观察peer日志可以看到相关信息。
3.安装与实例化链码
在org1 peer上安装和实例化链码到mychannel上,org2 peer上安装就可以进行调用了。(使用官方提供的简易版转账链码)
# 安装
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必须安装链码并且在发送请求时必须带上org2的peer
4.链码调用
# 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"]}'
网络的基础搭建到这里就结束了,接下来会记录如何向通道中添加机构以及如何使用fabric-ca,敬请期待。