0

所以我在文件中配置了这个 p2p 节点node_file.js

const Libp2p = require("libp2p");
const TCP = require("libp2p-tcp");
const Mplex = require("libp2p-mplex");
const { NOISE } = require("@chainsafe/libp2p-noise");
const MulticastDNS = require("libp2p-mdns");
const Gossipsub = require("libp2p-gossipsub");

const createNode = async () => {
  const node = await Libp2p.create({
    addresses: {
      listen: ["/ip4/0.0.0.0/tcp/0"],
    },
    modules: {
      transport: [TCP],
      streamMuxer: [Mplex],
      connEncryption: [NOISE],
      peerDiscovery: [ MulticastDNS ],
      pubsub: Gossipsub,
    },
    config: {
      peerDiscovery: {
        [MulticastDNS.tag]: {
          interval: 10e3,
          enabled: true,
        },
      },
    },
  });

  console.log(`Soldier Info: ${node.peerId.toB58String()}`);

  node.connectionManager.on("peer:connect", (connection) => {
      console.log("Connected to %s", connection.remotePeer.toB58String());
  });

  node.connectionManager.on("peer:disconnect", (connection) => {
      console.log( "Disconnected : ", connection.remotePeer.toB58String());
  });

  return node;
}

const topic = "dummy";

async function main() {
  
    const validatorId = process.argv[2];
    
    const node = await createNode();
    await node.start();

    node.pubsub.on(topic, async (msg) => {
        console.log(validatorId, " receivced: ", msg);
    });

    node.pubsub.subscribe(topic);
}

main();

并使用以下方法创建一个 3 节点虚拟网络:

node node_file.js 0
node node_file.js 1
node node_file.js 2

问题是:激活网络时,每个节点都在断开连接并重新连接。

例如

$ node watcher.js 2
Soldier Info: QmUE9v46CmecWuYTUYEVWnuSzT4A3nsFEJtYPCeom6W4UQ
Connected to QmbKgE9G9gb6v113Ujz1kzyrNYGpvP3C9CcX6igYR9ra9x
Connected to QmcZ5Lm6RjzjPMZcmrL2YvLDk7k8CnpgGFBqeMYqrb2f1a
Connected to QmcZ5Lm6RjzjPMZcmrL2YvLDk7k8CnpgGFBqeMYqrb2f1a
Connected to QmbKgE9G9gb6v113Ujz1kzyrNYGpvP3C9CcX6igYR9ra9x
Connected to QmcZ5Lm6RjzjPMZcmrL2YvLDk7k8CnpgGFBqeMYqrb2f1a
Disconnected :  QmcZ5Lm6RjzjPMZcmrL2YvLDk7k8CnpgGFBqeMYqrb2f1a
Connected to QmcZ5Lm6RjzjPMZcmrL2YvLDk7k8CnpgGFBqeMYqrb2f1a
Connected to QmcZ5Lm6RjzjPMZcmrL2YvLDk7k8CnpgGFBqeMYqrb2f1a

而我希望不会断开连接。

我的代码有问题吗?我真的不知道!

如果有帮助,这是我的package.json

{
  "dependencies": {
      "@chainsafe/libp2p-noise": "^5.0.0",
      "libp2p": "^0.35.2",
      "libp2p-gossipsub": "^0.12.1",
      "libp2p-mdns": "^0.18.0",
      "libp2p-mplex": "^0.10.5",
      "libp2p-tcp": "^0.17.2"
  }
}

任何帮助表示赞赏!

4

0 回答 0