fabric2.x自己搭建流程小结

前期准备:

一个configtx.yaml  一个crypto-config.yaml  一个docker-compose.yaml【作者这里将cli  peer  orderer进行融合 没有分开】 生成相应的配置文件,如图:

 相应的代码:

cryptogen generate --config ./ crypto-config.yaml  生成系列配置文件crypto-config 

 configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block -channelID fabric.channel   生成创世块【注意此处尽量不要用 mychannel】

configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel   生成通道配置

configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP  生成锚节点configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP  生成锚节点

正式开始    -----------------------------------------------

启动整个适配网络    docker-compose -f docker-compose.yaml up -d    

本作者在这里设置了俩个cli  将 org1 和 org2 分别放到俩个容器【本人非测试网络 example】

docker exec -it cli1 bash  进入容器一 

peer channel create -o orderer.traceability.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem

 peer channel join -b mychannel.block

exit 退出容器 将生成的mychannel.block 复制到cli2中

docker cp cli1:/opt/gopath/src/github.com/hyperledger/fabric/peer/mychannel.block ./
docker cp ./mychannel.block cli2:/opt/gopath/src/github.com/hyperledger/fabric/peer/

 docker exec -it cli2 bash  进入容器二 

peer channel join -b mychannel.block

更新组织一锚节点

peer channel update -o orderer.traceability.com:7050 -c mychannel -f ./channel-artifacts/Org2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/orderers/orderer.traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem 

docker exec -it cli1 bash  进入容器一

  更新组织二锚节点

peer channel update -o orderer.traceability.com:7050 -c mychannel -f ./channel-artifacts/Org1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/orderers/orderer.traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem 
【同上】

配置cli容器内的go环境【这里是使用go的链码】

 go env -w GO111MODULE=on  

 go env -w GOPROXY=https://goproxy.cn,direct

生成链码

 peer lifecycle chaincode package mycc.tar.gz --path /opt/gopath/src/github.com/hyperledger/fabric-cluster/chaincode/go/ --lang golang --label mycc_1

 安装链码

peer lifecycle chaincode install mycc.tar.gz

 将生成的mycc.tar.gz复制到容器2中

docker cp  cli1:/opt/gopath/src/github.com/hyperledger/fabric/peer/mycc.tar.gz ./
docker cp  ./mycc.tar.gz  cli2:/opt/gopath/src/github.com/hyperledger/fabric/peer

docker exec -it cli2 bash  进入容器二

安装链码

peer lifecycle chaincode install mycc.tar.gz

查看已安装链码

peer lifecycle chaincode queryinstalled

链码认证

peer lifecycle chaincode approveformyorg --channelID mychannel --name mycc --version 1.0 --init-required --package-id mycc_1:093b3fb9aebd12b88329f9892d8df01b61165b9e4c1f613af7a6f979fd712d9b --sequence 1 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/orderers/orderer.traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem

 docker exec -it cli1 bash  进入容器一

链码认证

peer lifecycle chaincode approveformyorg --channelID mychannel --name mycc --version 1.0 --init-required --package-id mycc_1:093b3fb9aebd12b88329f9892d8df01b61165b9e4c1f613af7a6f979fd712d9b --sequence 1 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/orderers/orderer.traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem

 提交链码

peer lifecycle chaincode commit -o orderer.traceability.com:7050 --channelID mychannel --name mycc --version 1.0 --sequence 1 --init-required --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/orderers/orderer.traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem --peerAddresses peer0.org1.traceability.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.traceability.com/peers/peer0.org1.traceability.com/tls/ca.crt --peerAddresses peer0.org2.traceability.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.traceability.com/peers/peer0.org2.traceability.com/tls/ca.crt

 初始化链码

peer chaincode invoke -o orderer.traceability.com:7050 --ordererTLSHostnameOverride orderer.traceability.com --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/traceability.com/orderers/orderer.traceability.com/msp/tlscacerts/tlsca.traceability.com-cert.pem -C mychannel --name mycc --peerAddresses peer0.org1.traceability.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.traceability.com/peers/peer0.org1.traceability.com/tls/ca.crt --peerAddresses peer0.org2.traceability.com:9051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.traceability.com/peers/peer0.org2.traceability.com/tls/ca.crt --isInit -c '{"Args":["a","bb"]}'

 查询链码

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

 致此,环境测试已经完成,作者期间遇到一个意外的错误,如下:

error: endorsement failure during invoke. response: status:500 message:"make sure the chaincode mycc...

出现在以上初始化链码部分

出现原因:可能cli1和cli2的容器执行顺序问题,但是在运行一次会问题+切换了一下链码名称就消失了【sacc改为mycc】会消失,待定。。。

其它遇到的问题作者这里没有收集,有需要的评论区可以交流

猜你喜欢

转载自blog.csdn.net/weixin_45270330/article/details/129803862