当我尝试安装链码时遇到问题; 这是我将基本配置分为两台主机(每台主机一个组织)。
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
(所有同龄人都应使用ouchdb)。
所有配置都可以与TLS一起正常使用。 我运行了容器,创建了一个名为mychannel的通道。提取,加入和更新工作正常。 在每台主机上,我创建了相对的PeerAdmin卡并安装了mychaincode@1.0.0.bna 我发布了两个身份(主机一为AdminOne,主机二为AdminTwo)。
我使用“ composer network start”,PeerAdmin.card,正确的链码名称,链码版本和认可策略以及AdminOne和AdminTwo的两个* .PEM文件启动了网络。 所有这些都可以与其余服务器,模型以及所有模型一起正常工作。
现在,我创建一个CLI容器,以从GO文件(在github / hyperledger / fabric / examples / chaincode / go / example02上找到的example02)安装新的chaincode,因为在下一步中,我想添加一个新的组织到网络,我希望新的已签名链码能够正常运行(升级时)。
在CLI容器上,我将存储库git-clone到正确的路径“ /opt/gopath/src/github.com/hyperledger/”,现在可以在此处找到example02: “ /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/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 -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')".
有人可以帮我吗?
预先感谢