From 359f6ff8d58b6284858ba5b4d0c5ef8f903bca8a Mon Sep 17 00:00:00 2001 From: gabrielmer <101006718+gabrielmer@users.noreply.github.com> Date: Wed, 19 Jun 2024 17:29:55 +0200 Subject: [PATCH] fix: update peers ENRs in peer store in case they are updated (#2818) --- waku/node/peer_manager/peer_manager.nim | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/waku/node/peer_manager/peer_manager.nim b/waku/node/peer_manager/peer_manager.nim index a2993c524..a38ad41df 100644 --- a/waku/node/peer_manager/peer_manager.nim +++ b/waku/node/peer_manager/peer_manager.nim @@ -128,9 +128,16 @@ proc addPeer*(pm: PeerManager, remotePeerInfo: RemotePeerInfo, origin = UnknownO if pm.peerStore[AddressBook][remotePeerInfo.peerId] == remotePeerInfo.addrs and pm.peerStore[KeyBook][remotePeerInfo.peerId] == remotePeerInfo.publicKey and pm.peerStore[ENRBook][remotePeerInfo.peerId].raw.len > 0: - trace "peer already managed and ENR info is already saved", - remote_peer_id = $remotePeerInfo.peerId - return + let incomingEnr = remotePeerInfo.enr.valueOr: + trace "peer already managed and incoming ENR is empty", + remote_peer_id = $remotePeerInfo.peerId + return + + if pm.peerStore[ENRBook][remotePeerInfo.peerId].raw == incomingEnr.raw or + pm.peerStore[ENRBook][remotePeerInfo.peerId].seqNum > incomingEnr.seqNum: + trace "peer already managed and ENR info is already saved", + remote_peer_id = $remotePeerInfo.peerId + return trace "Adding peer to manager", peerId = remotePeerInfo.peerId, addresses = remotePeerInfo.addrs