You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hyperledger Fabric首个应用运行异常:Event Hub已关闭,invoke.js调用受阻

解决Hyperledger Fabric首个应用中Node.js调用链码的常见问题

针对你在运行Hyperledger Fabric首个应用时遇到的两个问题,我整理了具体的排查和解决方案:

1. 解决「TypeError: Cannot read property 'getConnectivityState' of undefined」错误

这个错误本质是grpc版本与Fabric 1.1 Node SDK不兼容,你降级到grpc@1.9.1的方向是对的,但建议完整执行以下步骤确保彻底解决:

  • 先卸载当前安装的grpc版本:
    npm uninstall grpc
    
  • 清理项目的依赖缓存和锁定文件,避免残留问题:
    rm -rf node_modules package-lock.json
    
  • 重新安装指定版本的grpc并保存到依赖:
    npm install grpc@1.9.1 --save
    

做完这些后,重新运行之前卡住的步骤,应该能跳过这个类型错误。

2. 解决「Event Hub已在Fabric上关闭」的问题

这个问题通常和Event Hub的连接配置、peer节点状态或SDK事件监听逻辑有关,你可以从以下几个方向排查:

  • 检查Peer节点的Event Hub端口配置
    Fabric 1.1中,peer节点默认的事件端口:非TLS环境是7053,TLS环境是7051。你需要确认invoke.js中配置的端口和你的Fabric网络实际端口一致——可以查看项目中的docker-compose.yml文件,找到peer节点的ports映射项,比如"7051:7051"就说明TLS事件端口是7051。

  • 确认Peer节点处于正常运行状态
    用docker ps命令查看peer容器的运行状态,如果容器已停止或异常,先重启对应的peer容器:

    docker-compose restart peer0.org1.example.com
    

    (替换成你实际的peer节点名称)

  • 完善Event Hub的重连逻辑
    默认的SDK代码可能没有处理Event Hub断开后的重连,你可以在invoke.js中添加监听逻辑,确保断开后自动重试:

    const eventHub = client.newEventHub();
    // 根据你的网络配置选择非TLS或TLS地址
    eventHub.setPeerAddr('grpc://localhost:7053'); 
    // 如果是TLS环境,需要传入证书配置:
    // const tlsOpts = { pem: fs.readFileSync('./path/to/ca.crt').toString(), 'ssl-target-name-override': 'peer0.org1.example.com' };
    // eventHub.setPeerAddr('grpcs://localhost:7051', tlsOpts);
    
    eventHub.connect();
    
    // 监听断开事件并尝试重连
    eventHub.on('disconnect', () => {
      console.log('Event Hub已断开,正在尝试重连...');
      setTimeout(() => eventHub.connect(), 3000);
    });
    
  • 验证链码是否正确实例化
    确保之前的链码安装(install)和实例化(instantiate)步骤完全成功,没有报错。你可以查看peer节点的日志,确认链码在正常运行:

    docker logs peer0.org1.example.com | grep chaincode
    

    如果日志中出现链码启动失败的信息,需要重新执行链码的安装和实例化步骤。

按照这些步骤逐一排查,应该能解决Event Hub关闭的问题,顺利完成node invoke.js的调用。

内容的提问来源于stack exchange,提问作者janDro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:48:05