mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-09 01:13:08 +00:00
adding discv5 debug logs
This commit is contained in:
parent
4f181abe0d
commit
17a95cc2c7
@ -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",
|
||||||
|
|||||||
@ -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()
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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)])
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user