问题描述
我有一个用于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 (将#修改为@)