Bluemix Blockchain service error with Fabric Composer

╄→尐↘猪︶ㄣ 提交于 2019-12-25 16:57:25

问题


Using fabric composer v0.7.0 I have deployed a business network to a Blockchain service on Bluemix (v0.6).

After the app runs for a while I get the following error:

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)

This sometimes happens when executing the composer network deploy command as well.


回答1:


This problem occurs because of the way the event hub works in Hyperledger Fabric v0.6. The Node.js client for Fabric hfc maintains a persistent connection to the event hub but does not cope well with network blips/disconnects etc (it just kills the client). Persistent connections aren't really cloud friendly as the network/routing will just terminate idle connections after a while. https://stackoverflow.com/users/7512977/simon-stone

Ways to deal with this:

  1. You could (probably should) have multiple instances of your application running so when one crashes another is still running to take over.
  2. Calling BusinessNetworkConnection.connect() before every chaincode invoke to recreate the event hub connection. Please note that this is not very efficient, as making the connection takes a while

If the error occurs when deploying with the composer-cli you may want to try executing the command again after a minute or so.

Calling BusinessNetworkConnection.ping() during a set interval will not help with the issue because the problem is caused by the event hub, and events are only published on actual transactions. ping() is a read-only chaincode query that does not create a transaction.



来源:https://stackoverflow.com/questions/43748219/bluemix-blockchain-service-error-with-fabric-composer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!