From 60b7a5945d4cb063dd3bddbca8931bc50f82f305 Mon Sep 17 00:00:00 2001 From: DarshanBPatel Date: Wed, 21 Aug 2024 19:49:25 +0530 Subject: [PATCH] chore: working px tools --- .../peer_exchange_tester.nim | 116 ++++++++++++------ 1 file changed, 78 insertions(+), 38 deletions(-) diff --git a/apps/peer_exchange_tester/peer_exchange_tester.nim b/apps/peer_exchange_tester/peer_exchange_tester.nim index 660b93829..14a91fe51 100644 --- a/apps/peer_exchange_tester/peer_exchange_tester.nim +++ b/apps/peer_exchange_tester/peer_exchange_tester.nim @@ -1,58 +1,98 @@ -import random, chronos, chronicles, stew/byteutils, os +import random, chronos, chronicles, stew/byteutils, os, osproc, strutils +import strutils, options, nimcrypto +import options, nimcrypto import libp2p/peerId import waku/[ + waku_node, waku_peer_exchange, node/peer_manager, node/peer_manager/peer_store/waku_peer_storage, node/peer_manager/peer_manager, + node/peer_manager, + factory/waku, + factory/external_config, + common/logging, ] -import waku/[waku_peer_exchange, node/peer_manager] -import tests/testlib/wakucore - -proc connectToPeer(sw: Switch, peerAddr: string, peerId: string) {.async.} = - let ma = MultiAddress.init(peerAddr).tryGet() - let peerId = PeerId.init(peerId).tryGet() - await sw.connect(peerId, @[ma]) - let conn = await sw.dial(peerId, @[ma], "/vac/waku/peer-exchange/2.0.0-alpha1") - if conn.isNil: - echo "--------> Connection failed: No connection returned." - else: - echo "--------> Connection successful: " proc main() {.async.} = - echo "main started" + echo "--------------- main started ---------------" + + var wakuConf: WakuNodeConf + wakuConf.logLevel = logging.LogLevel.DEBUG + wakuConf.logFormat = logging.LogFormat.TEXT + wakuConf.staticNodes = + @[ + "/ip4/178.128.141.171/tcp/30303/p2p/16Uiu2HAkykgaECHswi3YKJ5dMLbq2kPVCo89fcyTd38UcQD6ej5W" + ] + wakuConf.maxConnections = 100 + wakuConf.pubsubTopics = @["/waku/2/rs/0/0"] + wakuConf.clusterId = 1 + wakuConf.nat = "extip:117.99.49.10" + wakuConf.relayPeerExchange = true + wakuConf.peerExchange = true + + var wakuApp = Waku.init(wakuConf).valueOr: + error "Waku initialization failed", error = error + quit(QuitFailure) + + (waitFor startWaku(addr wakuApp)).isOkOr: + error "Starting waku failed", error = error + quit(QuitFailure) + + echo "--------------------------------------------------------------------------------" + let addrs = "/ip4/178.128.141.171/tcp/30303/" let id = "16Uiu2HAkykgaECHswi3YKJ5dMLbq2kPVCo89fcyTd38UcQD6ej5W" - let switch = newStandardSwitch() - discard switch.start() + let ma = MultiAddress.init(addrs).tryGet() + let peerId = PeerId.init(id).tryGet() + let peer_info = RemotePeerInfo.init(peerId, @[ma]) - await connectToPeer(switch, addrs, id) - if len(switch.connectedPeers(Direction.Out)) > 0: - echo "Successfully out connected with Waku test fleet" - elif len(switch.connectedPeers(Direction.In)) > 0: - echo "Successfully in connected with Waku test fleet" - else: - echo "Not connected to any peers" + let response = await wakuApp.node.wakuPeerExchange.request(2, peer_info) - echo "\n ---------------------------------- connection completed -------------------------------- \n" + # echo $response + echo $response.get().peerInfos - let database = SqliteDatabase.new(":memory:").tryGet() - let storage = WakuPeerStorage.new(database).tryGet() - let peerManager = PeerManager.new(switch = switch, storage = storage) - let wakuPx = WakuPeerExchange(peerManager: peerManager) + let pxInfo = response.get().peerInfos - for i in 1 .. 20: - echo "Seq No :- " & $i & " ---> " - echo $wakuPx.enrCache + for info in pxInfo: + # echo info.enr.Record() + let info_str = cast[string](info.enr) - let res1 = await wakuPx.request(1) - if res1.isOk: - echo "response count :- " & $res1.get().peerInfos.len - else: - echo "request isn't ok" - - sleep(120000) + echo info_str + echo "------------------" + echo info + echo "------------------" + # enr = info_str + # let ip = enr["ip4"] + # let port = enr["tcp"] + + # let pubkey = enr["secp256k1"] + # let peerId = PeerId.initFromPubKey(pubkey).get() + + # let addrs = fmt"/ip4/{ip}/tcp/{port}" + # let ma = MultiAddress.init(addrs).tryGet() + + # let peerInfo = RemotePeerInfo.init(peerId, @[ma]) + + # echo peerInfo + + if response.isOk: + echo "--------------------------- peer exchange succesfully -------------------------" + + # let wakuPx = WakuPeerExchange(peerManager: peerManager) + + # for i in 1 .. 20: + # echo "Seq No :- " & $i & " ---> " + # echo $wakuPx.enrCache + + # let res1 = await wakuPx.request(1) + # if res1.isOk: + # echo "response count :- " & $res1.get().peerInfos.len + # else: + # echo "request isn't ok" + + # sleep(120000) echo "---------------------------- Done ------------------------------- "