【发布时间】:2019-01-04 04:50:57
【问题描述】:
我正在使用带有自定义链码的余额转移应用程序,当我使用背书策略 '1-of':[{ 'signed-by': 0 }, { 'signed-by': 1 }] 时一切正常,但是如果我使用 '2-of':[{ 'signed-by': 0 }, { 'signed-by': 1 }] 调用事务失败并出现以下错误:
Fabric Peer 错误日志:
验证 -> ERRO 078 VSCC 错误:stateBasedValidator.Validate 失败, tx 4:0 中链码 mycc 的背书策略验证错误 失败:签名集不满足策略 2019-01-02 07:24:40.782 UTC [committer.txvalidator] validateTx -> ERRO 079 VSCCValidateTx for 交易 txId = 815553b7cabb383f59d4abd3c2bdc3deda5b74169048e3b3b837f46adbd85099 返回错误:验证链码 mycc 的背书策略 tx 4:0 失败:签名集不满足策略
Node-SDK 日志显示以下内容
[2019-01-02 02:24:40.826] [错误] 调用链代码 - 调用 链码交易无效,代码:ENDORSEMENT_POLICY_FAILURE [2019-01-02 02:24:40.827] [错误] 调用链码 - 错误:调用 链码交易无效,代码:ENDORSEMENT_POLICY_FAILURE
任何解决这个问题的帮助都会非常有帮助
【问题讨论】:
-
您是否向两个组织的同行提交请求建议?我相信余额转移只需要来自一个组织的同行的认可,而不是来自两个组织。
-
嗨 Gari Singh,这就是我的请求的外观 Invoke Transaction: localhost:4000/channels/mychannel/chaincodes/mycc \ -H "authorization: Bearer $ORG1_TOKEN" \ -H "content-type: application/json" \ -d ' { "peers": ["peer0.org1.example.com","peer1.org2.example.com"], "fcn":"invoke", "operation":"commit", "args": ["commit ","true","a","b","c"] }') 所以本质上我正在向两个组织的对等方发送请求。我将一次只尝试一个组织并分享响应。谢谢
-
嗨 Gari Singh 我尝试向一个组织的对等方发送请求,但仍然是同样的问题。 ENDORSEMENT FAILURE 这里是默认的背书策略 'endorsement-policy': { identities: [ { role: { name: 'member', mspId: 'Org1MSP' }}, { role: { name: 'member', mspId: ' Org2MSP' }} ],策略:{ '2-of':[{ 'signed-by': 0 }, { 'signed-by': 1 }] } }
-
嗨 @GariSingh 我已将代码上传到 github link
-
嗨@GariSingh 我正在使用的代码在这里上传github.com/psanket/balance-transfer-modified
标签: hyperledger-fabric hyperledger-fabric-sdk-js