使用Node.js SDK调用链码时出错[TypeError:无法读取未定义的属性'getConnectivityState']

时间:2018-05-02 12:11:49

标签: node.js docker-compose hyperledger-fabric blockchain hyperledger

无法成功调用:: TypeError:无法读取未定义的属性“getConnectivityState” /opt/share/hyperledger/node_modules/fabric-client/lib/EventHub.js:355             if(self._stream)state = self。 stream.call.channel .getConnectivityState();                                                                 ^

TypeError: Cannot read property 'getConnectivityState' of undefined
    at ClientDuplexStream.<anonymous> (/opt/share/hyperledger/node_modules/fabric-client/lib/EventHub.js:355:56)
    at emitOne (events.js:116:13)
    at ClientDuplexStream.emit (events.js:211:7)
    at ClientDuplexStream._emitStatusIfDone (/opt/share/hyperledger/node_modules/grpc/src/client.js:236:12)
    at ClientDuplexStream._readsDone (/opt/share/hyperledger/node_modules/grpc/src/client.js:201:8)
    at /opt/share/hyperledger/node_modules/grpc/src/client_interceptors.js:705:15

我正在使用以下链接中提到的最新版本的先决条件:

http://hyperledger-fabric.readthedocs.io/en/release-1.1/getting_started.html#install-prerequisites

有谁能告诉我哪里出错了?

6 个答案:

答案 0 :(得分:4)

是的,这是由于3天前发布的新版本的grpc(v1.11.0)。该版本由fabric-client控制,它采用最新版本。您需要删除grpc模块并使用npm install grpc@1.9.1重新安装它。这将解决问题。展望未来你可能需要在package.json中将grpc修复为1.9.1,直到Hyperledger解决了这个问题。

参考: https://chat.hyperledger.org/channel/general?msg=FME6aDfnfMexWTm6g

答案 1 :(得分:0)

我在EventHub.js中对这些行进行了评论。 它只需要状态日志。 例如:

<br/>
<i>         var state = -1;<br/>
            //if(self._stream) state = self._stream.call.channel_.getConnectivityState();<br/>
            logger.debug('on.data - grpc stream state :%s',state);<br/>
</i><br/><br/>

现在工作正常。

答案 2 :(得分:0)

EventHub.js

中评论该行后,我仍然遇到错误
  

无法成功调用:: TypeError:无法读取未定义的属性“getConnectivityState”

以前的详细错误:

  

TypeError:无法读取未定义的属性“getConnectivityState”       在ClientDuplexStream。 (/fabric-samples/fabcar/node_modules/fabric-client/lib/EventHub.js:308:56)       在emitOne(events.js:116:13)       在ClientDuplexStream.emit(events.js:211:7)       在addChunk(_stream_readable.js:263:12)       在readableAddChunk(_stream_readable.js:250:11)       在ClientDuplexStream.Readable.push(_stream_readable.js:208:10)       at Object.onReceiveMessage(/fabric-samples/fabcar/node_modules/grpc/src/client_interceptors.js:1302:19)       在InterceptingListener.recvMessageWithContext(/fabric-samples/fabcar/node_modules/grpc/src/client_interceptors.js:629:19)       at /fabric-samples/fabcar/node_modules/grpc/src/client_interceptors.js:728:14

答案 3 :(得分:0)

谢谢Anjy,更新grpc模块工作正常。

答案 4 :(得分:0)

在构建网络泊坞窗时遇到同样的问题 编辑package.json 添加线  “依赖”:{     “grpc”:“1.9.1”,

再次构建docker 发出docker撰写agin!它的工作原理

答案 5 :(得分:0)

我试图将作曲家bna连接到IBM区块链,我尝试安装grpc 1.9.1 ..甚至1.10.1 ..我尝试了所有的东西,唯一可行的是按照Kataus的建议,我注释掉了与getConnectivity状态相关的行,最后它连接到我所拥有的IBM区块链网络。