我尝试安装链码时遇到了问题;这是我在两个主机(每个主机一个组织)的基本配置 .

Details:
Server: Ubuntu server 16.04.4 LTS x86_64
Hyperledger fabric 1.1
Composer v0.19.10

host one:
orderer.org1.example.com (SOLO)
ca.org1.example.com
peer0.org1.example.com
peer1.org1.example.com
peer2.org1.example.com

host two
ca.org2.example.com
peer0.org2.example.com
peer1.org2.example.com
peer2.org2.example.com

(所有同行都与couchdb有关) .

所有配置都适用于TLS . 我运行容器,我创建了一个名为mychannel的 Channels . 获取,加入和更新正常工作 . 在每台主机上,我创建了相关的PeerAdmin卡并安装了mychaincode@1.0.0.bna我发出了两个标识(AdminOne用于主机1,AdminTwo用于主机2) .

我开始使用“作曲家网络启动”,PeerAdmin.card,具有正确的链代码名称,链代码版本和认可政策,以及AdminOne和AdminTwo的* .PEM文件 . 所有这些都适用于休息服务器,模型和所有 .

现在我创建一个CLI容器,从GO文件(我在github / hyperledger / fabric / examples / chaincode / go / example02上找到的example02)安装一个新的链代码,因为在下一步中我想添加一个新的组织到网络,我希望新的签名链代码正常运行(升级时) .

在CLI容器上,我将repo git-clone到正确的路径“/opt/gopath/src/github.com/hyperledger/”,现在我可以在这里找到example02:“/ opt / global / src / github.com / hyperledger /面料/例子/ chaincode /去/ example02" . 我还检查了example02源代码和“main.go”导入路径 .

我正确创建了包并签名 . 我正确地将链码安装到peer0.org1.example.com中 .

ssh hostone docker exec peer0.org1.example.com ls /var/hyperledger/production/chaincodes

命令,确认链接代码已安装在peer0上 .

当我尝试“peer chaincode instantiate”命令时:

peer chaincode instantiate -n anotherchaincode -v 1.0.0 -c '{"Args":["Init"]}' -C mychannel -o orderer.org1.example.com:7050 --tls true --cafile $ORDERER_CA

($ ORDERER_CA包含正确的路径)

我收到此错误:

(status: 500, message: instantiation policy violation: signature set did not satisfy policy)

但我认为这个政策是正确的,当我创建我做的包时:

peer chaincode package ./ccpack.out -n anotherchaincode -p github.com/hyperledger/fabric/examples/chaincode/go/example02/ -v 1.0.0 -s -S -i "OR('Org1MSP.member', 'Org2MSP.member')".

有人能帮我吗?

提前致谢