filter peers if mix is enabled

This commit is contained in:
Prem Chaitanya Prathi 2025-03-25 14:33:42 +05:30
parent 4b26a54727
commit fa57dcddef
2 changed files with 9 additions and 4 deletions

2
vendor/mix vendored

@ -1 +1 @@
Subproject commit 230a5c49583f8d82711f047e1ece21da9eff2b01
Subproject commit 2f8ed4e389a166b6905a83ab2dc3b9bd1fc36b04

View File

@ -249,6 +249,8 @@ proc getBootStrapMixNodes*(node: WakuNode): Table[PeerId, MixPubInfo] =
#TODO: Ideally these procs should be moved out into mix specific file, but keeping it here for now.
proc mixPoolFilter*(cluster: Option[uint16], peer: RemotePeerInfo): bool =
# Note that origin based(discv5) filtering is not done intentionally
# so that more mix nodes can be discovered.
if peer.enr.isNone():
trace "peer has no ENR", peer = $peer
return false
@ -257,11 +259,14 @@ proc mixPoolFilter*(cluster: Option[uint16], peer: RemotePeerInfo): bool =
debug "peer has mismatching cluster", peer = $peer
return false
#TODO: Filter if mix is enabled
# Filter if mix is enabled
if not peer.enr.get().supportsCapability(Capabilities.Mix):
debug "peer doesn't support mix", peer = $peer
return false
return true
proc addPeerId*(multiaddr: MultiAddress, peerId: PeerId): MultiAddress =
proc appendPeerIdToMultiaddr*(multiaddr: MultiAddress, peerId: PeerId): MultiAddress =
if multiaddr.contains(multiCodec("p2p")).get():
return multiaddr
@ -295,7 +300,7 @@ proc populateMixNodePool*(node: WakuNode) {.async.} =
let remotePeerENR = remotePeers[i].enr.get()
# TODO: use the most exposed/external multiaddr of the peer, right now using the first
let maddrWithPeerId =
toString(addPeerId(remotePeers[i].addrs[0], remotePeers[i].peerId))
toString(appendPeerIdToMultiaddr(remotePeers[i].addrs[0], remotePeers[i].peerId))
trace "remote peer ENR",
peerId = remotePeers[i].peerId, enr = remotePeerENR, maddr = maddrWithPeerId