adding discv5 debug logs

This commit is contained in:
Gabriel mermelstein 2025-06-09 14:34:08 +02:00
parent 4f181abe0d
commit 17a95cc2c7
4 changed files with 34 additions and 13 deletions

View File

@ -219,12 +219,14 @@ proc findRandomPeers*(
wd: WakuDiscoveryV5, overridePred = none(WakuDiscv5Predicate) wd: WakuDiscoveryV5, overridePred = none(WakuDiscv5Predicate)
): Future[seq[waku_enr.Record]] {.async.} = ): Future[seq[waku_enr.Record]] {.async.} =
## Find random peers to connect to using Discovery v5 ## Find random peers to connect to using Discovery v5
echo "---------------- findRandomPeers 1"
let discoveredNodes = await wd.protocol.queryRandom() let discoveredNodes = await wd.protocol.queryRandom()
var discoveredRecords = discoveredNodes.mapIt(it.record) var discoveredRecords = discoveredNodes.mapIt(it.record)
when defined(debugDiscv5): echo "---------------- findRandomPeers 2"
logDiscv5FoundPeers(discoveredRecords) logDiscv5FoundPeers(discoveredRecords)
# Filter out nodes that do not match the predicate # Filter out nodes that do not match the predicate
if overridePred.isSome(): if overridePred.isSome():
@ -245,7 +247,7 @@ proc searchLoop(wd: WakuDiscoveryV5) {.async.} =
info "Starting discovery v5 search" info "Starting discovery v5 search"
while wd.listening: while wd.listening:
trace "running discv5 discovery loop" echo "---------------running discv5 discovery loop"
let discoveredRecords = await wd.findRandomPeers() let discoveredRecords = await wd.findRandomPeers()
var discoveredPeers: seq[RemotePeerInfo] var discoveredPeers: seq[RemotePeerInfo]
@ -261,11 +263,12 @@ proc searchLoop(wd: WakuDiscoveryV5) {.async.} =
discoveredPeers.add(peerInfo) discoveredPeers.add(peerInfo)
trace "discv5 discovered peers", echo "----------------- discv5 discovered peers"
info "discv5 discovered peers",
num_discovered_peers = discoveredPeers.len, num_discovered_peers = discoveredPeers.len,
peers = toSeq(discoveredPeers.mapIt(shortLog(it.peerId))) peers = toSeq(discoveredPeers.mapIt(shortLog(it.peerId)))
trace "discv5 discarded wrong records", info "discv5 discarded wrong records",
wrong_records = wrong_records =
wrongRecordsReasons.mapIt("(" & it.record & "," & it.errorDescription & ")") wrongRecordsReasons.mapIt("(" & it.record & "," & it.errorDescription & ")")
@ -410,6 +413,7 @@ proc setupDiscoveryV5*(
for enr in discv5BootstrapEnrs: for enr in discv5BootstrapEnrs:
let peerInfoRes = enr.toRemotePeerInfo() let peerInfoRes = enr.toRemotePeerInfo()
if peerInfoRes.isOk(): if peerInfoRes.isOk():
echo "------------ adding discv5 bootstrap node"
nodePeerManager.addPeer(peerInfoRes.get(), PeerOrigin.Discv5) nodePeerManager.addPeer(peerInfoRes.get(), PeerOrigin.Discv5)
else: else:
debug "could not convert discv5 bootstrap node to peerInfo, not adding peer to Peer Store", debug "could not convert discv5 bootstrap node to peerInfo, not adding peer to Peer Store",

View File

@ -471,6 +471,9 @@ proc startNode*(
# #
# Use px to periodically get peers if discv5 is disabled, as discv5 nodes have their own # Use px to periodically get peers if discv5 is disabled, as discv5 nodes have their own
# periodic loop to find peers and px returned peers actually come from discv5 # periodic loop to find peers and px returned peers actually come from discv5
echo "------------ conf.peerExchange: ", conf.peerExchange
echo "------------ conf.discv5Conf.isSome(): ", conf.discv5Conf.isSome()
if conf.peerExchange and not conf.discv5Conf.isSome(): if conf.peerExchange and not conf.discv5Conf.isSome():
node.startPeerExchangeLoop() node.startPeerExchangeLoop()

View File

@ -369,8 +369,10 @@ proc startWaku*(waku: ptr Waku): Future[Result[void, string]] {.async.} =
updateWaku(waku).isOkOr: updateWaku(waku).isOkOr:
return err("Error in updateApp: " & $error) return err("Error in updateApp: " & $error)
echo "--------- before conf.discv5Conf.isSome"
## Discv5 ## Discv5
if conf.discv5Conf.isSome: if conf.discv5Conf.isSome:
echo "--------- conf.discv5Conf.isSome is true"
waku[].wakuDiscV5 = waku_discv5.setupDiscoveryV5( waku[].wakuDiscV5 = waku_discv5.setupDiscoveryV5(
waku.node.enr, waku.node.enr,
waku.node.peerManager, waku.node.peerManager,
@ -383,6 +385,7 @@ proc startWaku*(waku: ptr Waku): Future[Result[void, string]] {.async.} =
conf.portsShift, conf.portsShift,
) )
echo "------------- starting discv5"
(await waku.wakuDiscV5.start()).isOkOr: (await waku.wakuDiscV5.start()).isOkOr:
return err("failed to start waku discovery v5: " & $error) return err("failed to start waku discovery v5: " & $error)

View File

@ -366,14 +366,13 @@ proc connectToNodes*(
let combined = zip(connectedPeers, futConns) let combined = zip(connectedPeers, futConns)
connectedPeers = combined.filterIt(it[1].read() == true).mapIt(it[0]) connectedPeers = combined.filterIt(it[1].read() == true).mapIt(it[0])
when defined(debugDiscv5): let peerIds = connectedPeers.mapIt(it.peerId)
let peerIds = connectedPeers.mapIt(it.peerId) let origin = connectedPeers.mapIt(it.origin)
let origin = connectedPeers.mapIt(it.origin) if peerIds.len > 0:
if peerIds.len > 0: notice "established connections with found peers",
notice "established connections with found peers", peerIds = peerIds.mapIt(shortLog(it)), origin = origin
peerIds = peerIds.mapIt(shortLog(it)), origin = origin else:
else: notice "could not connect to new peers", attempted = nodes.len
notice "could not connect to new peers", attempted = nodes.len
info "Finished dialing multiple peers", info "Finished dialing multiple peers",
successfulConns = connectedPeers.len, attempted = nodes.len successfulConns = connectedPeers.len, attempted = nodes.len
@ -570,6 +569,7 @@ proc updateOnlineState*(pm: PeerManager) {.async.} =
pm.online = await checkInternetConnectivity(pm.dnsNameServers) pm.online = await checkInternetConnectivity(pm.dnsNameServers)
proc connectToRelayPeers*(pm: PeerManager) {.async.} = proc connectToRelayPeers*(pm: PeerManager) {.async.} =
echo "------------ connectToRelayPeers 1"
# only attempt if current node is online # only attempt if current node is online
if not pm.isOnline(): if not pm.isOnline():
error "connectToRelayPeers: won't attempt new connections - node is offline" error "connectToRelayPeers: won't attempt new connections - node is offline"
@ -578,6 +578,12 @@ proc connectToRelayPeers*(pm: PeerManager) {.async.} =
var (inRelayPeers, outRelayPeers) = pm.connectedPeers(WakuRelayCodec) var (inRelayPeers, outRelayPeers) = pm.connectedPeers(WakuRelayCodec)
let totalRelayPeers = inRelayPeers.len + outRelayPeers.len let totalRelayPeers = inRelayPeers.len + outRelayPeers.len
echo "------------- pm.inRelayPeersTarget: ", pm.inRelayPeersTarget
echo "------------- inRelayPeers.len ", inRelayPeers.len
echo "------------- pm.inRelayPeersTarget ", pm.inRelayPeersTarget
echo "------------- outRelayPeers.len ", outRelayPeers.len
echo "------------- pm.outRelayPeersTarget ", pm.outRelayPeersTarget
if inRelayPeers.len > pm.inRelayPeersTarget: if inRelayPeers.len > pm.inRelayPeersTarget:
await pm.pruneInRelayConns(inRelayPeers.len - pm.inRelayPeersTarget) await pm.pruneInRelayConns(inRelayPeers.len - pm.inRelayPeersTarget)
@ -588,6 +594,9 @@ proc connectToRelayPeers*(pm: PeerManager) {.async.} =
var outsideBackoffPeers = notConnectedPeers.filterIt(pm.canBeConnected(it.peerId)) var outsideBackoffPeers = notConnectedPeers.filterIt(pm.canBeConnected(it.peerId))
echo "------------- notConnectedPeers ", notConnectedPeers.len
echo "------------- outsideBackoffPeers ", outsideBackoffPeers.len
shuffle(outsideBackoffPeers) shuffle(outsideBackoffPeers)
var index = 0 var index = 0
@ -595,7 +604,9 @@ proc connectToRelayPeers*(pm: PeerManager) {.async.} =
min(outsideBackoffPeers.len, pm.outRelayPeersTarget - outRelayPeers.len) min(outsideBackoffPeers.len, pm.outRelayPeersTarget - outRelayPeers.len)
## number of outstanding connection requests ## number of outstanding connection requests
echo "----------- numPendingConnReqs: ", numPendingConnReqs
while numPendingConnReqs > 0 and outRelayPeers.len < pm.outRelayPeersTarget: while numPendingConnReqs > 0 and outRelayPeers.len < pm.outRelayPeersTarget:
echo "--------- connecting to peers!"
let numPeersToConnect = min(numPendingConnReqs, MaxParallelDials) let numPeersToConnect = min(numPendingConnReqs, MaxParallelDials)
await pm.connectToNodes(outsideBackoffPeers[index ..< (index + numPeersToConnect)]) await pm.connectToNodes(outsideBackoffPeers[index ..< (index + numPeersToConnect)])