Hyperledger Fabric-离线对等阻止组织连接到网络

问题描述

我有一个用于Hyperledger Fabric 2.2的测试环境。两个组织,每个组织有2个同行。

我想模拟一个离线对等体,因此出于测试目的,我关闭了peer2-org1,这导致org1的应用程序损坏。

这是节点应用程序代码,基本上从示例中获取:

        this.gateway = new Gateway();
        const gatewayOpts = {
            wallet: this.wallet,identity: username,discovery: {
                enabled: true,asLocalhost: false
            }
        } as GatewayOptions;

        await this.gateway.connect(this.config,gatewayOpts);
        this.network = await this.gateway.getNetwork('somechannel');

最后一条命令gateway.getNetwork引发以下异常:

Error: Failed to connect before the deadline on Discoverer- name: peer2-org1,url:grpcs://peer2-org1:7051,connected:false,connectAttempted:true
     at checkState (/usr/src/app/node_modules/@grpc/grpc-js/build/src/client.js:69:26)
     at Timeout._onTimeout (/usr/src/app/node_modules/@grpc/grpc-js/build/src/channel.js:292:17)
     at listOnTimeout (internal/timers.js:549:17)
     at processTimers (internal/timers.js:492:7) {
   connectFailed: true
}

我发现,如果我从peer2-org1配置对象中删除离线对等体gateway.connect,则该应用程序将正常运行,如下所示:

(...)
"organizations": {
        "org1": {
            "mspid": "org1","peers": [
                "peer1-org1","peer2-org1"
            ],"certificateAuthorities": [
                "rca-org1"
            ]
        }
    },(...)

如果peer2不可用,如何使这项工作并告诉库继续使用peer1?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...