本文是在阅读《区块链开发实战-Hyperledger Fabric关键技术与案例分析》一书的同时,在实践中记录的一些实践步骤与经验分享。
Hyperledger Fabric开发实战-08 供应链金融实战
本节的目的是在前面的基础之上,启动Org2的peer节点,并将peer加入Channle,并测试由两个组织背书的Chaincode。
启动Org2的peer
与启动Org1的pper一样,首先需要修改core.yaml的配置,在配置中,由于是在同一台机器,将启动端口由之前的7050
,7051
,改为17050
和17051
。
# 首先,创建一个文件夹org2peer保存peer的配置文件和日志
mkdir -p /home/ssj234/fabricwksp/02-helloworld/org2peer
# 设置环境变量
export set FABRIC_CFG_PATH=/home/ssj234/fabricwksp/02-helloworld/org2peer
# 启动peer节点
peer node start >> log_peer.log 2>&1 &
将Peer节点加入Channel
组织Org2MSP的peer启动成功后,需要加入到cmbcchannel666
中以便能够同步账本信息。
在加入之前,我们先通过peer查询一下channel的信息
# 先之前的peer节点
export set CORE_PEER_LOCALMSPID=Org1MSP
#
export set CORE_PEER_ADDRESS=peer0.org1.cmbc.com:7051
export set CORE_PEER_MSPCONFIGPATH=/home/ssj234/fabricwksp/02-helloworld/fabricconfig/crypto-config/peerOrganizations/org1.cmbc.com/users/Admin@org1.cmbc.com/msp
peer channel getinfo -c cmbcchannel666
先使用Org1的peer环境用户查询,可以返回如下信息
Blockchain info: {"height":26,"currentBlockHash":"OLFVZ5rAREZoF0vBjHLti2R/rr4AQkdc40gRiBxeawg=","previousBlockHash":"zIszKwF0uPV9ruap49FKgpkSXFpPwUCp6UNelxxTpZQ="}
但是,如果改为Org2MSP的配置,就会出现access denied的错误了。
加入channel的时候可以使用原来生成的Channel的创世块cmbcchannel666.block
,如果找到到这个块,可以使用下面的命令导出
export set CORE_PEER_LOCALMSPID=Org2MSP
export set CORE_PEER_ADDRESS=peer0.org2.cmbc.com:17051
export set CORE_PEER_MSPCONFIGPATH=/home/ssj234/fabricwksp/02-helloworld/fabricconfig/crypto-config/peerOrganizations/org2.cmbc.com/users/Admin@org2.cmbc.com/msp
# 联系orderer节点,导出cmbcchannel666的创世块
peer channel fetch 0 cmbcchannel666.block -c cmbcchannel666 -o orderer.cmbc.com:7050
有了创世快之后,使用之前的命令就可以将Org2的peer节点加入到channel中了。
export set FABRIC_CFG_PATH=/home/ssj234/fabricwksp/02-helloworld/peer
export set CORE_PEER_LOCALMSPID=Org2MSP
# 由于是在同一台机器上部署了两个组织的peer,需要制定peer地址
export set CORE_PEER_ADDRESS=peer0.org2.cmbc.com:17051
export set CORE_PEER_MSPCONFIGPATH=/home/ssj234/fabricwksp/02-helloworld/fabricconfig/crypto-config/peerOrganizations/org2.cmbc.com/users/Admin@org2.cmbc.com/msp
peer channel join -b /home/ssj234/fabricwksp/02-helloworld/org2peer/cmbcchannel666.block
执行完成后,Org2MSP的peer就加入到了Channel中。
测试背书
目前,我们已经部署了Org1MSP和Org2MSP两个组织的两个Peer节点,下面测试一个Chaincode,需要两个组织同意后才能生效。
部署Chaincode
部署Chaincode跟之前的差别不大,需要主要两点
- 实例化时使用AND,而不是OR
2.只需要一个Peer实例化即可
peer chaincode instantiate -o orderer.cmbc.com:7050 -C cmbcchannel666 -n twoorgchaincode -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "AND ('Org1MSP.member','Org2MSP.member')"