调用期间未在频道中找到Chaincode

时间:2017-04-12 12:23:24

标签: blockchain hyperledger hyperledger-fabric

我正在尝试使用fabric-sdk-node v1.0.0-alpha e2e测试中的一些代码。我有以下网络配置:

  • 1 CA
  • 1 orderer
  • 2个同行,是“mychannel”频道的一部分

总之,我试图完成以下

  1. 创建频道
  2. 将peer0,peer1加入频道
  3. 安装,实例化链码
  4. 发送调用和查询事务
  5. 在实例化操作之后,我可以在peer0和peer1的两个链代码容器中看到以下日志条目

    安装+实例化后的两个链代码日志的内容

    ########### example_cc Init ###########
    Aval = 100, Bval = 200
    

    但是当我发送调用时,对等体在peer1:

    的日志中给出以下错误

    peer1 log

    2017-04-12 10:53:43.966 UTC [sysccapi] deploySysCC -> INFO 035 system chaincode qscc/mychannel(github.com/hyperledger/fabric/core/chaincode/qscc) deployed
    2017-04-12 10:53:44.085 UTC [gossip/comm#-1] authenticateRemotePeer -> WARN 036 Remote peer 172.18.0.7:7051 didn't send TLS certificate
    2017-04-12 10:53:44.085 UTC [gossip/comm#-1] sendToEndpoint -> WARN 037 Failed obtaining connection for peer0:7051, PKIid:[] reason: Remote peer 172.18.0.7:7051 didn't send TLS certificate
    2017-04-12 10:53:55.024 UTC [lccc] Invoke -> ERRO 038 ChaincodeId: end2end does not exist on channel: mychannel(err:chaincode not found end2end)
    

    以下调用尝试之后是两个链代码容器中的日志条目:

    peer0 chaincode container log

    ########### example_cc Init ###########
    Aval = 100, Bval = 200
    ########### example_cc Invoke ###########
    Aval = 0, Bval = 300
    

    peer1 chaincode容器日志

    ########### example_cc Init ###########
    Aval = 100, Bval = 200
    

    chaincode not found错误可能是什么原因造成的?为什么即使init似乎在同行中都成功了呢?

1 个答案:

答案 0 :(得分:1)

错误的可能原因是peer1无法与orderer节点通信。即使您能够安装然后实例化,实例化也就像任何事务一样(除了它是针对lccc - 生命周期系统链代码调用的)。因此,虽然链代码是初始化实例化提议的一部分,但实例化事务未提交,因此您无法调用它(提交基本上意味着将其添加到lccc状态)。

此错误的可能原因是对等方无法与订货人通信。您可以检查peer1的日志,并查找诸如交付或提供服务以验证

之类的内容