Javascript 运行Hyperledger结构网关时DNS解析程序提供错误的IP地址

Javascript 运行Hyperledger结构网关时DNS解析程序提供错误的IP地址,javascript,hyperledger-fabric,api-gateway,Javascript,Hyperledger Fabric,Api Gateway,我正在运行一个JS文件,它充当Hyperledger结构网络上一组通道的侦听器。尽管我描述了以下错误,监听器还是能够根据控制台输出中的证据(下面提供了一个摘录)来收听频道(这让我感到困惑)。由于这段代码即将投入生产,我需要解决任何错误,即使功能不受影响 因此,我对以下JavaScript代码摘录有一个问题: let network, listener; for (var i = 0; i < channelid.length; i++) { let cid = channelid[i]

我正在运行一个JS文件,它充当Hyperledger结构网络上一组通道的侦听器。尽管我描述了以下错误,监听器还是能够根据控制台输出中的证据(下面提供了一个摘录)来收听频道(这让我感到困惑)。由于这段代码即将投入生产,我需要解决任何错误,即使功能不受影响

因此,我对以下JavaScript代码摘录有一个问题:

let network, listener;
for (var i = 0; i < channelid.length; i++) {
  let cid = channelid[i];
  console.log(`Adding listener for channel ${cid}`);
  network = await gateway.getNetwork(cid);
  console.log(`await gateway.getNetwork`);
  listener = await network.addBlockListener(
    async (event) => {
      await ProcessingMap.set(event.blockData.header.number, event.blockData);
      console.log(
        `Added block ${event.blockData.header.number} to ProcessingMap`,
      );
    },
    {startBlock: parseInt(nextBlock, 10)},
  );
  console.log(`await network.addBlockListener`);
}
我不知道DNS解析器怎么会给我那个奇怪的IP地址35.186.238.101,所以我做了
nslookup 35.186.238.101

[root@isprintdev nodejs]# nslookup 35.186.238.101
Server:         192.168.1.8
Address:        192.168.1.8#53

Non-authoritative answer:
101.238.186.35.in-addr.arpa     name = 101.238.186.35.bc.googleusercontent.com.
连接配置文件可在中找到。简而言之,我的网络由三个订购者和两个对等者组成,都在同一个虚拟机上


所以我的问题是:我的连接配置文件或JS代码(或任何必要的地方)是否需要更改为确保不会出现此错误?

isprint.com
有一个公共DNS条目,显然是一个通配符DNS a记录,可将
*.isprint.com
解析为
35.186.238.101

MacBook-Pro:~ garis$ nslookup orderer1.isprint.com
Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   orderer1.isprint.com
Address: 35.186.238.101
不确定您如何运行Fabric(Docker、二进制文件等),也不确定您如何运行客户端,但您的JS应用程序可能直接在主机VM上运行,因此正在使用配置的DNS解析,解析方式如上所述。假设您的结构节点通过Docker/Docker Compose运行,则可以使用
isprint.com
,因为它们将在外部DNS解析之前在Docker网络上解析

因此,为了解决问题,您需要创建一个HOSTS文件条目,该条目将您的端点映射到VM中的IP,客户端可以使用该IP访问Fabric节点

在*nix系统上,您需要编辑
etc/hosts
,并添加如下条目:

192.168.50.65   orderer1.isprint.com    orderer2.isprint.com    orderer3.isprint.com

我不太明白你提出的解决办法。你能举个例子说明你的意思吗?你能补充一些关于你的设置的细节吗?
MacBook-Pro:~ garis$ nslookup orderer1.isprint.com
Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   orderer1.isprint.com
Address: 35.186.238.101
192.168.50.65   orderer1.isprint.com    orderer2.isprint.com    orderer3.isprint.com