Skip to content

Commit e91f458

Browse files
committed
Enhance peer discovery logging and address resolution handling in BootstrapDiscovery
1 parent 0416572 commit e91f458

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

libp2p/discovery/bootstrap/bootstrap.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ async def _process_bootstrap_addr(self, addr_str: str) -> None:
6060
return
6161
peer_id = ID.from_base58(peer_id_str)
6262
addrs = [addr for addr in resolved_addrs]
63+
if not addrs:
64+
logger.warning(f"No addresses resolved for DNS address: {addr_str}")
65+
return
6366
peer_info = PeerInfo(peer_id, addrs)
6467
self.add_addr(peer_info)
6568
else:
@@ -76,16 +79,16 @@ def add_addr(self, peer_info: PeerInfo) -> None:
7679
logger.debug(f"Skipping own peer ID: {peer_info.peer_id}")
7780
return
7881

79-
# Skip if already discovered
80-
if str(peer_info.peer_id) in self.discovered_peers:
81-
logger.debug(f"Peer already discovered: {peer_info.peer_id}")
82-
return
83-
84-
# Add to peerstore with TTL (using same pattern as mDNS)
82+
# Always add addresses to peerstore (allows multiple addresses for same peer)
8583
self.peerstore.add_addrs(peer_info.peer_id, peer_info.addrs, 10)
8684

87-
# Track discovered peer
88-
self.discovered_peers.add(str(peer_info.peer_id))
89-
90-
# Emit peer discovery event
91-
peerDiscovery.emit_peer_discovered(peer_info)
85+
# Only emit discovery event if this is the first time we see this peer
86+
peer_id_str = str(peer_info.peer_id)
87+
if peer_id_str not in self.discovered_peers:
88+
# Track discovered peer
89+
self.discovered_peers.add(peer_id_str)
90+
# Emit peer discovery event
91+
peerDiscovery.emit_peer_discovered(peer_info)
92+
logger.debug(f"Peer discovered: {peer_info.peer_id}")
93+
else:
94+
logger.debug(f"Additional addresses added for peer: {peer_info.peer_id}")

0 commit comments

Comments
 (0)