mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-12 16:10:57 +00:00
Refactor logging configuration to reduce verbosity and improve peer discovery events
This commit is contained in:
@ -19,14 +19,19 @@ handler.setFormatter(
|
|||||||
)
|
)
|
||||||
logger.addHandler(handler)
|
logger.addHandler(handler)
|
||||||
|
|
||||||
# Set root logger to DEBUG to capture all logs
|
# Configure root logger to only show warnings and above to reduce noise
|
||||||
logging.getLogger().setLevel(logging.DEBUG)
|
# This prevents verbose DEBUG messages from multiaddr, DNS, etc.
|
||||||
|
logging.getLogger().setLevel(logging.WARNING)
|
||||||
|
|
||||||
|
# Specifically silence noisy libraries
|
||||||
|
logging.getLogger("multiaddr").setLevel(logging.WARNING)
|
||||||
|
logging.getLogger("root").setLevel(logging.WARNING)
|
||||||
|
|
||||||
|
|
||||||
def on_peer_discovery(peer_info: PeerInfo) -> None:
|
def on_peer_discovery(peer_info: PeerInfo) -> None:
|
||||||
"""Handler for peer discovery events."""
|
"""Handler for peer discovery events."""
|
||||||
logger.info(f"🔍 Discovered peer: {peer_info.peer_id}")
|
logger.info(f"🔍 Discovered peer: {peer_info.peer_id}")
|
||||||
logger.info(f" Addresses: {[str(addr) for addr in peer_info.addrs]}")
|
logger.debug(f" Addresses: {[str(addr) for addr in peer_info.addrs]}")
|
||||||
|
|
||||||
|
|
||||||
# Example bootstrap peers
|
# Example bootstrap peers
|
||||||
|
|||||||
@ -1,13 +1,15 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from multiaddr import Multiaddr
|
from multiaddr import Multiaddr
|
||||||
|
from multiaddr.resolvers import DNSResolver
|
||||||
|
|
||||||
from libp2p.abc import INetworkService
|
from libp2p.abc import ID, INetworkService, PeerInfo
|
||||||
from libp2p.discovery.bootstrap.utils import validate_bootstrap_addresses
|
from libp2p.discovery.bootstrap.utils import validate_bootstrap_addresses
|
||||||
from libp2p.discovery.events.peerDiscovery import peerDiscovery
|
from libp2p.discovery.events.peerDiscovery import peerDiscovery
|
||||||
from libp2p.peer.peerinfo import info_from_p2p_addr
|
from libp2p.peer.peerinfo import info_from_p2p_addr
|
||||||
|
|
||||||
logger = logging.getLogger("libp2p.discovery.bootstrap")
|
logger = logging.getLogger("libp2p.discovery.bootstrap")
|
||||||
|
resolver = DNSResolver()
|
||||||
|
|
||||||
|
|
||||||
class BootstrapDiscovery:
|
class BootstrapDiscovery:
|
||||||
@ -51,27 +53,24 @@ class BootstrapDiscovery:
|
|||||||
logger.debug(f"Invalid multiaddr format '{addr_str}': {e}")
|
logger.debug(f"Invalid multiaddr format '{addr_str}': {e}")
|
||||||
return
|
return
|
||||||
if self.is_dns_addr(multiaddr):
|
if self.is_dns_addr(multiaddr):
|
||||||
resolved_addrs = await multiaddr.resolve()
|
resolved_addrs = await resolver.resolve(multiaddr)
|
||||||
for resolved_addr in resolved_addrs:
|
peer_id_str = multiaddr.get_peer_id()
|
||||||
if resolved_addr == multiaddr:
|
if peer_id_str is None:
|
||||||
return
|
logger.warning(f"Missing peer ID in DNS address: {addr_str}")
|
||||||
self.add_addr(Multiaddr(resolved_addr))
|
return
|
||||||
|
peer_id = ID.from_base58(peer_id_str)
|
||||||
self.add_addr(multiaddr)
|
addrs = [addr for addr in resolved_addrs]
|
||||||
|
peer_info = PeerInfo(peer_id, addrs)
|
||||||
|
self.add_addr(peer_info)
|
||||||
|
else:
|
||||||
|
self.add_addr(info_from_p2p_addr(multiaddr))
|
||||||
|
|
||||||
def is_dns_addr(self, addr: Multiaddr) -> bool:
|
def is_dns_addr(self, addr: Multiaddr) -> bool:
|
||||||
"""Check if the address is a DNS address."""
|
"""Check if the address is a DNS address."""
|
||||||
return any(protocol.name == "dnsaddr" for protocol in addr.protocols())
|
return any(protocol.name == "dnsaddr" for protocol in addr.protocols())
|
||||||
|
|
||||||
def add_addr(self, addr: Multiaddr) -> None:
|
def add_addr(self, peer_info: PeerInfo) -> None:
|
||||||
"""Add a peer to the peerstore and emit discovery event."""
|
"""Add a peer to the peerstore and emit discovery event."""
|
||||||
# Extract peer info from multiaddr
|
|
||||||
try:
|
|
||||||
peer_info = info_from_p2p_addr(addr)
|
|
||||||
except Exception as e:
|
|
||||||
logger.debug(f"Failed to extract peer info from '{addr}': {e}")
|
|
||||||
return
|
|
||||||
|
|
||||||
# Skip if it's our own peer
|
# Skip if it's our own peer
|
||||||
if peer_info.peer_id == self.swarm.get_peer_id():
|
if peer_info.peer_id == self.swarm.get_peer_id():
|
||||||
logger.debug(f"Skipping own peer ID: {peer_info.peer_id}")
|
logger.debug(f"Skipping own peer ID: {peer_info.peer_id}")
|
||||||
|
|||||||
Reference in New Issue
Block a user