Skip to content

Commit cda18f9

Browse files
authored
fix: update peers ENRs in peer store in case they are updated (#2818)
1 parent 93e9ba2 commit cda18f9

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

waku/node/peer_manager/peer_manager.nim

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,16 @@ proc addPeer*(pm: PeerManager, remotePeerInfo: RemotePeerInfo, origin = UnknownO
128128
if pm.peerStore[AddressBook][remotePeerInfo.peerId] == remotePeerInfo.addrs and
129129
pm.peerStore[KeyBook][remotePeerInfo.peerId] == remotePeerInfo.publicKey and
130130
pm.peerStore[ENRBook][remotePeerInfo.peerId].raw.len > 0:
131-
trace "peer already managed and ENR info is already saved",
132-
remote_peer_id = $remotePeerInfo.peerId
133-
return
131+
let incomingEnr = remotePeerInfo.enr.valueOr:
132+
trace "peer already managed and incoming ENR is empty",
133+
remote_peer_id = $remotePeerInfo.peerId
134+
return
135+
136+
if pm.peerStore[ENRBook][remotePeerInfo.peerId].raw == incomingEnr.raw or
137+
pm.peerStore[ENRBook][remotePeerInfo.peerId].seqNum > incomingEnr.seqNum:
138+
trace "peer already managed and ENR info is already saved",
139+
remote_peer_id = $remotePeerInfo.peerId
140+
return
134141

135142
trace "Adding peer to manager",
136143
peerId = remotePeerInfo.peerId, addresses = remotePeerInfo.addrs

0 commit comments

Comments
 (0)