hyperledger-fabric - 当 node.js 结构客户端应用程序在单独的节点上运行时,背书失败
问题描述
我正在从节点上的结构样本中运行fabcar 示例。我的结构网络是在 docker 容器内运行的第一网络(BYFN),我想在单独的节点(Raspberry Pi)上使用 node.js 结构客户端应用程序调用链代码。
在connection-org1.json文件中,我已将 localhost 域名(在对等 url 中)替换为我自己的域名 (mydomain.com),该域名 (mydomain.com) 正在运行结构网络。
我使用以下修改后的网关设置在 Raspberry Pi 上执行invoke.js :
await gateway.connect(ccpPath, { wallet, identity: 'user1', discovery: { enabled: true, asLocalhost: false } });
这给了我一条错误消息:
2019-07-04T07:15:30.124Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://peer0.org1.example.com:7051
2019-07-04T07:15:30.132Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G0:0 - endorsement failed - Error: Failed to connect before the deadline URL:grpcs://peer0.org1.example.com:7051
2019-07-04T07:15:30.134Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://peer0.org2.example.com:9051
2019-07-04T07:15:30.135Z - warn: [DiscoveryEndorsementHandler]: _build_endorse_group_member >> G1:1 - endorsement failed - Error: Failed to connect before the deadline URL:grpcs://peer0.org2.example.com:9051
Failed to submit transaction: Error: Endorsement has failed
我看到背书者的域名是在 docker composer 文件中定义的,而不是我的结构网络运行的域 (mydomain.com)。
我应该如何配置结构网络或 node.js 结构客户端应用程序,以便我可以从我的 Raspberry Pi 节点调用链代码?
解决方案
我做了一个解决方法,/etc/hosts
在我的 Raspberry Pi 上扩展文件。我创建了认可的对等域名peer0.org1.example.com
,并peer0.org2.example.com
指向我运行结构网络(docker)的主机的 IP 地址。
这解决了问题,现在我可以从 Raspberry Pi 主机调用链代码。
推荐阅读
- javascript - onBlur 没有在标签上被调用?
- javascript - Papa parse 无法解析字符串,但可以解析打印到控制台的相同字符串
- walmart-api - 调用 Walmart Open API 时出现 CORS 问题
- postgresql - 使用 postgis 创建通过多边形路径的中间线
- python - 为 pd.to_datetime 找到正确的格式
- azure - CosmosDB:最小吞吐量没有意义
- java - Azure 服务总线 - 订阅和 DLQ
- python - 如何根据从 tkinter 中选择的值保存 docx 文件?
- java - 如何使用多个线程并行运行来执行非常繁重的任务
- delphi - Delphi Executable 以调试模式启动