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?
解决方案
推荐阅读
- appium-desktop - 即使添加了“platformName”功能,Appium 桌面也会继续请求
- tensorflow - TensorFlow Universal Sentence Encoder Lite 嵌入的范围有限?
- php - 在 Woocommerce 中更改特定产品的结帐“帐单详细信息”文本
- amazon-web-services - 使用 Cloudformation 的 EC2 错误:服务:AmazonEC2;状态码:400;错误代码:IncorrectInstanceState
- oop - 关于软件设计/架构的查询
- r - 如何在散点图象限中指定颜色?
- gluon - 在连接的 iOS 设备上启动应用程序收到错误
- php - 试图弄清楚如何“隐藏”图像和源代码
- python - 如何使用numpy有效地从每一列中减去值
- git - 如何在 git 中为新分支设置默认上游?