我在 Hyperledger Fabric 1.4 中有一个小网络,它与示例中的基本网络非常相似。它有:
一个带有 orderer peer 的 orderer 组织 一个带有两个 peer 的 Hospital 组织。医院同行所在的单一渠道。
我尝试编写一个非常简单的演示智能合约/链码并调用它。(智能合约称为bananascc)
从与 peer0.hospital1.health.com 对等点关联的 docker 容器 cli /bin/bash 运行,我成功安装并实例化:
peer chaincode install -n bananascc -v 1.0 -l node -p /opt/gopath/src/github.com/chaincode/chaincode_bananas/node
peer chaincode instantiate -o orderer.health.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/health.com/orderers/orderer.health.com/msp/tlscacerts/tlsca.health.com-cert.pem -C hospital1channel -n bananascc -l node -v 1.0 -c '{"Args":["init","edo","100"]}' -P "OR ('Hospital1MSP.admin', 'Hospital1MSP.peer' )"
有政策-P "OR ('Hospital1MSP.admin', 'Hospital1MSP.peer' )"
但是当我尝试调用链码时,事务发送成功但操作没有执行,因为我得到了一个
peer0.hospital1.health.com | 2019-03-06 10:36:44.525 UTC [vscc] Validate -> ERRO 07e VSCC error: stateBasedValidator.Validate failed, err validation of endorsement policy for chaincode bananascc in tx 6:0 failed: signature set did not satisfy policy
peer0.hospital1.health.com | 2019-03-06 10:36:44.525 UTC [committer.txvalidator] validateTx -> ERRO 07f VSCCValidateTx for transaction txId = d6726e0b2daf11d0e3ef24e86fa0e7a5530f2d98dcc4ad1f0d266ca642be1ee3 returned error: validation of endorsement policy for chaincode bananascc in tx 6:0 failed: signature set did not satisfy policy
我认为必须根据有效的签名集评估交易,但我不明白我可以在哪里指定它,或者为什么根据 VSCC 应该是错误的。
如果有人能帮我弄清楚,我会很高兴。我已经广泛地寻找了一个我还没有找到的答案。
如果您需要有关此问题的其他信息,请告诉我。
非常感谢。