Error invoking chaincode using Node.js SDK [TypeError: Cannot read property 'getConnectivityState' of undefined]

Error invoking chaincode using Node.js SDK [TypeError: Cannot read property 'getConnectivityState' of undefined]

未能成功调用:: 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

我正在使用下面提到的最新版本的先决条件 link:

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

有人能告诉我哪里错了吗?

我在 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/>

现在可以正常使用了。

评论 EventHub.js

中的行后,我仍然遇到以下错误

Failed to invoke successfully :: TypeError: Cannot read property 'getConnectivityState' of undefined

之前的详细错误:

TypeError: Cannot read property 'getConnectivityState' of undefined at ClientDuplexStream. (/fabric-samples/fabcar/node_modules/fabric-client/lib/EventHub.js:308:56) at emitOne (events.js:116:13) at ClientDuplexStream.emit (events.js:211:7) at addChunk (_stream_readable.js:263:12) at readableAddChunk (_stream_readable.js:250:11) at ClientDuplexStream.Readable.push (_stream_readable.js:208:10) at Object.onReceiveMessage (/fabric-samples/fabcar/node_modules/grpc/src/client_interceptors.js:1302:19) at 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

是的,这是由于 grpc 3 天前发布的新版本 (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

构建网络时遇到同样的问题docker 编辑 package.json 添加行 "dependencies":{ "grpc" : "1.9.1",

再次构建 docker 发出 docker compose agin !有效

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