mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-11 02:13:11 +00:00
chore: working px tools
This commit is contained in:
parent
b0746d57ec
commit
60b7a5945d
@ -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 ------------------------------- "
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user