Hyperledger fabric “如何修复”;检索块之前上下文已完成:上下文已取消";实例化链码时发生?

Hyperledger fabric “如何修复”;检索块之前上下文已完成:上下文已取消";实例化链码时发生?,hyperledger-fabric,instantiation,grpc,grpc-go,chaincode,Hyperledger Fabric,Instantiation,Grpc,Grpc Go,Chaincode,实例化命令成功完成,但在分析对等日志时,您可能会注意到: 2019-04-17 17:25:52.581 UTC[Tassip.state]提交块->DEBU 48c[canal contrato]提交块[1]和1个事务 2019-04-17 17:25:52.581 UTC[通用交付]交付块->德布48d[通道:运河合同]交付块(0xc00023f9c0)192.168.16.1:48230 2019-04-17 17:25:52.581 UTC[fsblkstorage]waitForBlo

实例化命令成功完成,但在分析对等日志时,您可能会注意到:

2019-04-17 17:25:52.581 UTC[Tassip.state]提交块->DEBU 48c[canal contrato]提交块[1]和1个事务

2019-04-17 17:25:52.581 UTC[通用交付]交付块->德布48d[通道:运河合同]交付块(0xc00023f9c0)192.168.16.1:48230

2019-04-17 17:25:52.581 UTC[fsblkstorage]waitForBlock->DEBU 48e将等待较新的区块。MaxAvailableLockNumber=[1],waitForBlockNum=[2]

2019-04-17 17:25:52.586 UTC[公共交付]交付块->取消DEB 48f上下文,中止等待下一个块

2019-04-17 17:25:52.586 UTC[通用交付事件]功能1->德布490关闭交付流

2019-04-17 17:25:52.586 UTC[comm.grpc.server]1->INFO 491流式呼叫已完成{“grpc.start_time”:“2019-04-17T17:25:50.441Z”,“grpc.service”:“protos.Deliver”,“grpc.method”:“DeliverFiltered”,“grpc.peer_address”:“192.168.16.1:48230”,“错误”:“检索块之前上下文已完成:上下文已取消”,“grpc.code”:“未知”,“grpc.呼叫持续时间”:“2.144399922s”}

谁能告诉我我可能做错了什么,这个错误的后果是什么

注意事项:

  • 订购者日志不存在任何类型的错误
  • 所有容器都正常运行
  • 我使用的是节点版本8.9.0(带有NPM5.5.1)
  • 我有1个组织,1个对等组织,1个CA和1个订购组织(仅用于测试)
  • 我使用的是hyperlegder面料1.4版

  • 这不是一个错误。您正在使用一个连接到对等机并等待实例化完成的SDK。该块由对等方接收,当它接收到时,SDK会关闭gRPC流,因为它不再需要它,对等方会将此记录下来,以通知您为什么从服务器端关闭流。

    我认为您需要检查上下文超时。查找使用
    context.WithTimeout()
    的代码片段。如果您正在开发此代码,则需要搜索客户端向服务器执行GRPC请求的位置。每个GRPC请求都有一个上下文,因此您需要检查谁在为这些上下文设置超时。很可能会增加这些超时时间。很抱歉我问了noob这个问题,但是我想在哪里进行这种可能的修改呢?我遵循的结构类似于余额转移示例(结构示例),但在node.js中部署了链码。我恐怕无法回答这个问题,因为我不是hyperledger用户。如果您作为系统工程师或devops而不是开发人员使用此软件,请尝试分析配置文件。可能有超时设置。看起来请求在2秒后超时(我可以从您的日志中看到)。