Skip to content

Commit 9e76940

Browse files
committed
Refactor logging configuration to reduce verbosity and improve peer discovery events
1 parent 9669a92 commit 9e76940

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

examples/bootstrap/bootstrap.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,19 @@
1919
)
2020
logger.addHandler(handler)
2121

22-
# Set root logger to DEBUG to capture all logs
23-
logging.getLogger().setLevel(logging.DEBUG)
22+
# Configure root logger to only show warnings and above to reduce noise
23+
# This prevents verbose DEBUG messages from multiaddr, DNS, etc.
24+
logging.getLogger().setLevel(logging.WARNING)
25+
26+
# Specifically silence noisy libraries
27+
logging.getLogger("multiaddr").setLevel(logging.WARNING)
28+
logging.getLogger("root").setLevel(logging.WARNING)
2429

2530

2631
def on_peer_discovery(peer_info: PeerInfo) -> None:
2732
"""Handler for peer discovery events."""
2833
logger.info(f"🔍 Discovered peer: {peer_info.peer_id}")
29-
logger.info(f" Addresses: {[str(addr) for addr in peer_info.addrs]}")
34+
logger.debug(f" Addresses: {[str(addr) for addr in peer_info.addrs]}")
3035

3136

3237
# Example bootstrap peers

libp2p/discovery/bootstrap/bootstrap.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import logging
22

33
from multiaddr import Multiaddr
4+
from multiaddr.resolvers import DNSResolver
45

5-
from libp2p.abc import INetworkService
6+
from libp2p.abc import ID, INetworkService, PeerInfo
67
from libp2p.discovery.bootstrap.utils import validate_bootstrap_addresses
78
from libp2p.discovery.events.peerDiscovery import peerDiscovery
89
from libp2p.peer.peerinfo import info_from_p2p_addr
910

1011
logger = logging.getLogger("libp2p.discovery.bootstrap")
12+
resolver = DNSResolver()
1113

1214

1315
class BootstrapDiscovery:
@@ -51,27 +53,24 @@ async def _process_bootstrap_addr(self, addr_str: str) -> None:
5153
logger.debug(f"Invalid multiaddr format '{addr_str}': {e}")
5254
return
5355
if self.is_dns_addr(multiaddr):
54-
resolved_addrs = await multiaddr.resolve()
55-
for resolved_addr in resolved_addrs:
56-
if resolved_addr == multiaddr:
57-
return
58-
self.add_addr(Multiaddr(resolved_addr))
59-
60-
self.add_addr(multiaddr)
56+
resolved_addrs = await resolver.resolve(multiaddr)
57+
peer_id_str = multiaddr.get_peer_id()
58+
if peer_id_str is None:
59+
logger.warning(f"Missing peer ID in DNS address: {addr_str}")
60+
return
61+
peer_id = ID.from_base58(peer_id_str)
62+
addrs = [addr for addr in resolved_addrs]
63+
peer_info = PeerInfo(peer_id, addrs)
64+
self.add_addr(peer_info)
65+
else:
66+
self.add_addr(info_from_p2p_addr(multiaddr))
6167

6268
def is_dns_addr(self, addr: Multiaddr) -> bool:
6369
"""Check if the address is a DNS address."""
6470
return any(protocol.name == "dnsaddr" for protocol in addr.protocols())
6571

66-
def add_addr(self, addr: Multiaddr) -> None:
72+
def add_addr(self, peer_info: PeerInfo) -> None:
6773
"""Add a peer to the peerstore and emit discovery event."""
68-
# Extract peer info from multiaddr
69-
try:
70-
peer_info = info_from_p2p_addr(addr)
71-
except Exception as e:
72-
logger.debug(f"Failed to extract peer info from '{addr}': {e}")
73-
return
74-
7574
# Skip if it's our own peer
7675
if peer_info.peer_id == self.swarm.get_peer_id():
7776
logger.debug(f"Skipping own peer ID: {peer_info.peer_id}")

0 commit comments

Comments
 (0)