所以我在文件中配置了这个 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"
}
}
任何帮助表示赞赏!