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】会消失,待定。。。

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值