Fabric Composer的Bluemix Blockchain服务错误

时间:2017-05-02 22:28:18

标签: ibm-cloud hyperledger hyperledger-fabric hyperledger-composer

使用fabric composer v0.7.0我已经将业务网络部署到Bluemix上的Blockchain服务(v0.6)。

应用运行一段时间后,我收到以下错误:

throw er; // Unhandled 'error' event
^

Error
at ClientDuplexStream._emitStatusIfDone (/home/vcap/app/node_modules/grpc/src/node/src/client.js:189:19)
at ClientDuplexStream._receiveStatus (/home/vcap/app/node_modules/grpc/src/node/src/client.js:169:8)

执行composer network deploy命令时有时会发生这种情况。

1 个答案:

答案 0 :(得分:1)

  

由于事件中心的工作方式,会出现此问题   Hyperledger Fabric v0.6。 Fabric hfc的Node.js客户端维护   与事件中心的持久连接但不能很好地应对   网络闪烁/断开连接等(它只会杀死客户端)。一贯   连接并不像网络/路由那样真正对云友好   一段时间后才终止空闲连接。   https://stackoverflow.com/users/7512977/simon-stone

解决这个问题的方法:

  1. 您可能(可能应该)运行您的应用程序的多个实例,这样当一个崩溃时,另一个仍在运行以接管。
  2. 在每个链代码调用之前调用BusinessNetworkConnection.connect()以重新创建事件中心连接。 请注意,这不是很有效,因为连接需要一段时间
  3. 如果使用composer-cli进行部署时发生错误,您可能希望在一分钟左右后再次尝试执行该命令。

    在设定的时间间隔内调用BusinessNetworkConnection.ping()无助于解决问题,因为问题是由事件中心引起的,事件仅在实际交易中发布。 ping()是一个只读链码查询,不会创建事务。