Hyperledger Fabric - 当我的智能合约是确定性的时,如何解决 'ProposalResponsePayloads do not match'?

Hyperledger Fabric- How do I resolve 'ProposalResponsePayloads do not match' when my smart contract is deterministic?

我正在尝试调用链代码函数来设置作物的详细信息。 此函数不使用 date/time,并且在逻辑上是确定性的。我已经检查过链码是否已为频道的每个组织成功安装,并使用 peer lifecycle chaincode queryinstalledpeer lifecycle chaincode querycommitted.

提交给频道

但是,当我运行 peer chaincode invoke时,它会产生一个错误Error: could not assemble transaction: ProposalResponsePayloads do not match

有一个更广泛的问题涵盖了一些常见的错误原因,但我不完全确定列出的任何原因是否适用于我的情况 ()。

这是调用命令:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile /home/ubuntu/fabric-samples/extended-test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n papercontract --peerAddresses localhost:7051 --tlsRootCertFiles /home/ubuntu/fabric-samples/extended-test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles /home/ubuntu/fabric-samples/extended-test-network/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt --peerAddresses localhost:11051 --tlsRootCertFiles /home/ubuntu/fabric-samples/extended-test-network/organizations/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt --peerAddresses localhost:12051 --tlsRootCertFiles /home/ubuntu/fabric-samples/extended-test-network/organizations/peerOrganizations/org4.example.com/peers/peer0.org4.example.com/tls/ca.crt --peerAddresses localhost:13051 --tlsRootCertFiles /home/ubuntu/fabric-samples/extended-test-network/organizations/peerOrganizations/org5.example.com/peers/peer0.org5.example.com/tls/ca.crt -c '{"function":"plant","Args":["bhut jolokia", "ghost pepper farms", "sustainable agriculture company", "two dozen", "three quintal per year", "yes", "polyculture", "organic, pesticide-free", "direct sowing"]}'

添加一些换行符和制表符后,错误消息如下所示:

Error: could not assemble transaction:
ProposalResponsePayloads do not match -
proposal response: version:1 response:<status:200

payload:"{
    \"field1\":\"\",
    \"field2\":\"\",
    \"field3\":\"\",
    \"field4\":\"\",
    \"field5\":\"\"}" >
    
payload:"\n 5-015<674[=12=]572%05769T344X302\"f\r603250\n302>\n\n_lifecycle20\n.\n(namespaces/fields/papercontract/Sequence2[=12=]206200\n\rpapercontract260230\n0[=12=]0SpiceList[=12=]0bhut jolokia[=12=]026[=12=]7{
    \"field1\":\"\",
    \"field2\":\"\",
    \"field4\":\"\",
    \"splitKey\":[\"bhut jolokia\"],
    \"field3\":\"\",
    \"field5\":\"\"}"}
    
20[=12=]700[=12=]122[=12=]7{
    \"field1\":\"\",
    \"field3\":\"\",
    \"field4\":\"\",
    \"field2\":\"\",
    \"field5\":\"\"}"}
    
\"22\rpapercontract2[=12=]10" endorsement:<endorser:"\n[=12=]7Org4MSP22[=12=]6-----BEGIN CERTIFICATE-----\nMIICKTCCAc+gAwIBAgIRAJhO/KCN82dUT2ZWdlM5uREwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzQuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzQuZXhhbXBsZS5jb20wHhcNMjEwNjI1MDQxMjAwWhcNMzEwNjIzMDQxMjAw\nWjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn\nNC5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGKB9vyBmDC9\nW9IGOaA7qlpAHUu2zuHxZGhuwcxqQSDY63/6L2Hpxhg3uVBhtxcOiROJvfZmjOxb\nkZxt2P25D9ujTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIIEDOx3pOppcqaQjtVPfOozh9/NnLuOCB7UWNlSKndMZMAoGCCqGSM49\nBAMCA0gAMEUCIQDkmp/qnb0DpwPlRYSPH6Cv0JE4HkgKgoY9FUAFVR6rpwIgEsXH\nDn2uHMeio475cLoKbayZo87BRDsykM1rBNl1/bI=\n-----END CERTIFICATE-----\n" signature:"0D[=12=]2 3v357I >12[=12=]713o65v3355r76105z13[=12=]5e[=12=]2 `10!2v67H3m607616[=12=]00< 76U0RV4065H" > 

invoke 命令的输出实际上 return 提案响应负载?我注意到 splitKey 只出现在一个有效载荷中,并且有效载荷中字段的顺序不同。

如何使提案响应负载保持一致?

尽量只用一个peer来背书,像这样:

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile /home/ubuntu/fabric-samples/extended-test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n papercontract --peerAddresses localhost:7051 --tlsRootCertFiles /home/ubuntu/fabric-samples/extended-test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt  -c '{"function":"plant","Args":["bhut jolokia", "ghost pepper farms", "sustainable agriculture company", "two dozen", "three quintal per year", "yes", "polyculture", "organic, pesticide-free", "direct sowing"]}'```