如何解决Hyperledger Fabric 2.0:Chaincode提交失败,错误为“此组织未同意Chaincode定义”
我正在尝试学习HLF 2.0链码生命周期,我的网络配置如下
- 两个组织,每个组织一个同行
- 作为订购服务的RAFT(共3个订单)
按照官方文档安装链码https://hyperledger-fabric.readthedocs.io/en/release-2.0/deploy_chaincode.html
当我尝试提交链码时遇到以下错误
Error: proposal failed with status: 500 - failed to invoke backing implementation of 'CommitChaincodeDefinition': chaincode definition not agreed to by this org (LeftOrgMSP)
但是,当我检查提交准备情况时
{
"approvals": {
"LeftOrgMSP": true,"RightOrgMSP": false
}
}
我得到LeftOrgMSP
为真
更新
批准组织的命令
peer lifecycle chaincode approveformyorg -o orderer1.base.order:7050 --channelID basechannel --name fabcar --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls \
--cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/base.order/orderers/orderer1.base.order/msp/tlscacerts/tlsca.base.order-cert.pem
提交命令
peer lifecycle chaincode commit -o orderer1.base.order:7050 --channelID basechannel \
--name fabcar --version 1.0 \
--sequence 1 --tls true \
--cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/base.order/orderers/orderer1.base.order/msp/tlscacerts/tlsca.base.order-cert.pem \
--peerAddresses peer1.base.left:7051 \
--tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/base.left/peers/peer1.base.left/tls/ca.crt
解决方法
部署链码的整个过程分为4个步骤:
- 包装链码
- 在您的组织对等方上安装-对于您的LeftOrg和RightOrg
- 批准您组织的链码定义,并且
- 将链码定义提交到您的频道。
安装-安装链码时,您是否在两个组织中都安装了链码?如果是这样,则成功安装将返回程序包标识符(ID),它是程序包标签(fabcar_X)的组合,并与chaincode程序包的哈希值结合在一起。我假设这就是您存储在$ CC_PACKAGE_ID中的内容,请确认该值是否正确。
成功安装后,向对等方查询已安装的链码,以查看结果是否匹配。该命令是:
peer lifecycle chaincode queryinstalled
批准并检查提交准备就绪-提交准备就绪的目的是帮助您在将定义提交到通道之前,验证是否有足够的渠道成员批准了链码定义以满足认可策略(默认情况下为多数)。看来您只批准了LeftOrg的链码,但仍需要批准RightOrg的链码(尽管您的日志消息似乎另有说明,因此可能还有更多内容)。我将执行RightOrg的批准,然后检查两个组织的提交准备情况以进行确认。
接着提交
并且,如果提交成功,请使用以下命令确认定义是否已在两个组织上成功提交
peer lifecycle chaincode querycommitted
如果您需要更多信息,我有一个blog on medium on chaincode deployment。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。