From 015a970b12951d5c0b131a7a718298889b6aadf9 Mon Sep 17 00:00:00 2001 From: elielnfinic <46634774+elielnfinic@users.noreply.github.com> Date: Tue, 29 Oct 2024 01:05:07 +0200 Subject: [PATCH] Testing connection to DHT --- packages/network/src/node.ts | 36 +++++++++++++++++----- packages/network/src/utils/topology_dht.ts | 4 +-- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/packages/network/src/node.ts b/packages/network/src/node.ts index 74631fcb..dd7f0450 100644 --- a/packages/network/src/node.ts +++ b/packages/network/src/node.ts @@ -31,7 +31,10 @@ import { type Libp2p, createLibp2p } from "libp2p"; import { fromString as uint8ArrayFromString } from "uint8arrays/from-string"; import { Message } from "./proto/messages_pb.js"; import { uint8ArrayToStream } from "./stream.js"; -import { kadDHT } from "@libp2p/kad-dht"; +import { KadDHT, kadDHT } from "@libp2p/kad-dht"; +import { TopologyDHT } from "./utils/topology_dht.js"; +import { peerIdFromString } from '@libp2p/peer-id' + export * from "./stream.js"; @@ -48,6 +51,7 @@ export class TopologyNetworkNode { private _config?: TopologyNetworkNodeConfig; private _node?: Libp2p; private _pubsub?: PubSub; + private _topologyDHT?: TopologyDHT; peerId = ""; @@ -93,7 +97,7 @@ export class TopologyNetworkNode { dcutr: dcutr(), identify: identify(), pubsub: gossipsub(), - kadDHT: kadDHT({ + dht: kadDHT({ protocol: "/topology/dht/1.0.0", kBucketSize: 50, clientMode: false, @@ -136,11 +140,24 @@ export class TopologyNetworkNode { if (!this._config?.bootstrap) { for (const addr of this._config?.bootstrap_peers || []) { - this._node.dial(multiaddr(addr)); + const stream = await this._node.dial(multiaddr(addr)); } } + if (!this._config?.bootstrap) { + // get bootstrap node peerStore + setInterval(() => { + console.log("CHeck peers"); + const peers = this._node?.peerStore; + console.log("PEERS", peers); + + }, 10000); + } + + const bootstrap_peer_id = peerIdFromString("12D3KooWC6sm9iwmYbeQJCJipKTRghmABNz1wnpJANvSMabvecwJ"); + this._pubsub = this._node.services.pubsub as PubSub; + this.peerId = this._node.peerId.toString(); console.log( @@ -148,9 +165,11 @@ export class TopologyNetworkNode { this.peerId, ); - this._node.addEventListener("peer:connect", (e) => + this._node.addEventListener("peer:connect", (e) => { console.log("::start::peer::connect", e.detail), - ); + this._topologyDHT = new TopologyDHT(this._node?.services.dht as KadDHT, bootstrap_peer_id); + console.log("CONNECTED TO DHT"); + }); this._node.addEventListener("peer:discovery", (e) => { // current bug in v11.0.0 requires manual dial (https://github.com/libp2p/js-libp2p-pubsub-peer-discovery/issues/149) for (const ma of e.detail.multiaddrs) { @@ -158,9 +177,10 @@ export class TopologyNetworkNode { } console.log("::start::peer::discovery", e.detail); }); - this._node.addEventListener("peer:identify", (e) => - console.log("::start::peer::identify", e.detail), - ); + this._node.addEventListener("peer:identify", (e) => { + // TO BE UNCOMMENTED + // console.log("::start::peer::identify", e.detail), + }); } subscribe(topic: string) { diff --git a/packages/network/src/utils/topology_dht.ts b/packages/network/src/utils/topology_dht.ts index e83153db..4fca6989 100644 --- a/packages/network/src/utils/topology_dht.ts +++ b/packages/network/src/utils/topology_dht.ts @@ -3,10 +3,10 @@ import { type KadDHT } from "@libp2p/kad-dht"; import { toString as uint8ArrayToString } from "uint8arrays"; import { fromString as uint8ArrayFromString } from "uint8arrays"; -class TopologyDHT { +export class TopologyDHT { private _dht: KadDHT; - constructor(dht: KadDHT) { + constructor(dht: KadDHT, peerId: PeerId) { this._dht = dht; }