无法调用更改或检索链码功能的功能?

时间:2019-05-12 14:13:37

标签: node.js hyperledger-fabric

问题:

我创建了一个Hyperledger Fabric网络,其中有六个组织,每个都有2个对等方。运行网络后,我在每个组织的一个对等点上安装fabcar链码,然后使用此命令实例化链码。

peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -n fabcar -l node -v 1.0  -c '{"Args":["init"]}' -C myc -P "AND ('Org2MSP.peer','Org1MSP.peer',Org3MSP.peer','Org4MSP.peer','Org5MSP.peer','Org6MSP.peer')"

在执行此命令之前,所有操作均成功完成,没有给我任何错误。在尝试使用此命令调用函数之后。

peer chaincode invoke -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C myc -n fabcar -c '{"Args":["initLedger"]}

此命令在特定的对等日志上留下此错误。

  

2019-05-12 13:38:01.162 UTC [gossip.privdata] StoreBlock->信息191   [myc]从缓冲区2019-05-12 13:38:01.213接收了块[8]   UTC [vscc]验证-> ERRO 192 VSCC错误:   stateBasedValidator.Validate失败,认可的错误验证   TX 8:0中的链码fabcar的策略失败:签名集未设置   满足政策2019-05-12 13:38:01.213 UTC [committer.txvalidator]   validateTx->事务txId的ERRO 193 VSCCValidateTx =   a17c0deb20af5a4e0a232fa432ea13e74fca101b63cb697384bbaced80905773   返回的错误:验证chaincode fabcar的认可策略   在TX 8:0中失败:签名集不满足策略2019-05-12   13:38:01.258 UTC [committer.txvalidator]验证-> INFO 194   [myc]在96ms内验证区块[8] 2019-05-12 13:38:01.259 UTC   [valimpl] preprocessProtoBlock-> WARN 195频道[trafficfine]:   块[8]交易索引[0] TxId   [a17c0deb20af5a4e0a232fa432ea13e74fca101b63cb697384bbaced80905773]   由提交者标记为无效。原因码   [ENDORSEMENT_POLICY_FAILURE]

这是邮政编码上的日志。

  

fabcar@1.0.0开始/ usr / local / src   节点fabcar.js“ --peer.address”“ peer0.org2.example.com:9052”

     

2019-05-12T13:35:08.951Z信息[lib / chaincode.js]
  信息:向对等方peer0.org2.example.com:9052注册为链码   “ fabcar:1.0” {“ timestamp”:“ 2019-05-12T13:35:08.951Z”}   2019-05-12T13:35:09.232Z信息[lib / handler.js]
  info:已成功在对等节点上注册。国家转移到   “已建立” {“时间戳”:“ 2019-05-12T13:35:09.232Z”}   2019-05-12T13:35:09.234Z信息[lib / handler.js]
  info:与对等节点成功建立通信。州   转移到“就绪” {“时间戳”:“ 2019-05-12T13:35:09.234Z”}   ===========实例化fabcar链码============ 2019-05-12T13:35:09.240Z信息[lib / handler.js]
  信息:[myc-8ecdb2a5]调用链码Init()成功。正在发送   已完成的消息返回给同级   {“ timestamp”:“” 2019-05-12T13:35:09.240Z“} {fcn:'initLedger',参数:   []}   =============开始:初始化分类帐===========成功{状态:200,消息:”,有效载荷:}添加了<-> {make:   '丰田',型号:'Prius',颜色:'蓝色',车主:'Tomoko',
  docType:“汽车”}成功{状态:200,消息:“,有效载荷:    }添加了<-> {品牌:“福特”,型号:“野马”,颜色:   '红色',所有者:'布拉德',文档类型:'汽车'}成功{状态:200,   消息:”,有效载荷:}添加了<-> {make:'Hyundai',
  型号:“图森”,颜色:“绿色”,所有者:“ Jin Soo”,docType:   'car'}成功{状态:200,消息:”,有效载荷:}   添加了<-> {品牌:“大众”,型号:“帕萨特”,颜色:   '黄色',所有者:'最大',文档类型:'汽车'}成功{状态:200,   消息:”,有效载荷:}添加了<-> {make:'Tesla',
  型号:“ S”,颜色:“黑色”,所有者:'Adriana',docType:'car'}   成功{状态:200,消息:”,有效载荷:}已添加<->   {品牌:“标致”,型号:“ 205”,颜色:“紫色”,所有者:   'Michel',docType:'car'}成功{状态:200,消息:”,   有效载荷:}添加了<-> {make:“ Chery”,型号:“ S22L”,
  颜色:“白色”,所有者:“ Aarav”,docType:“汽车”}成功{   状态:200,消息:”,有效载荷:}已添加<-> {make:   '菲亚特',型号:'Punto',颜色:'紫罗兰色,所有者:'Pari',
  docType:“汽车”}成功{状态:200,消息:“,有效载荷:    }添加了<-> {make:'Tata',型号:'Nano',颜色:   'indigo',所有者:'Valeria',docType:'car'}成功{状态:   200,消息:“”,有效载荷:}已添加<-> {make:'Holden',
  型号:“ Barina”,颜色:“棕色”,所有者:“ Shotaro”,docType:   “汽车”}   ============结束:初始化账本=========== 2019-05-12T13:37:58.998Z信息[lib / handler.js]
  信息:[myc-a17c0deb]调用链码Invoke()成功。正在发送   已完成的消息返回给同级   {“ timestamp”:“ 2019-05-12T13:37:58.998Z”}

我做了很多尝试来弄清楚我的网络出了什么问题。但是我无法找到答案。有人可以帮助我解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您的背书政策是AND政策,因此您需要从政策中定义的所有组织中收集背书。您可以在invoke命令中使用[--peerAddresses]标志将事务发送到不同组织中的多个对等方,并获取该策略所需的必需签名。