feat: add logging for mDNS peer discovery and update dependencies

This commit is contained in:
sumanjeet0012@gmail.com
2025-06-20 20:17:01 +05:30
parent 387f4879d1
commit 89ed86d903
6 changed files with 33 additions and 19 deletions

View File

@ -24,11 +24,3 @@ class PeerDiscovery:
peerDiscovery = PeerDiscovery()
# async def peerDiscoveryHandler(peerInfo: PeerInfo) -> None:
# await trio.sleep(5) # Simulate some processing delay
# # print("Discovered peer is", peerInfo.peer_id)
# peerDiscovery.register_peer_discovered_handler(peerDiscoveryHandler)

View File

@ -1,3 +1,4 @@
import logging
import socket
from zeroconf import (
@ -5,6 +6,8 @@ from zeroconf import (
Zeroconf,
)
logger = logging.getLogger("libp2p.discovery.mdns.broadcaster")
class PeerBroadcaster:
"""

View File

@ -1,3 +1,4 @@
import logging
import socket
from zeroconf import (
@ -12,6 +13,8 @@ from libp2p.discovery.events.peerDiscovery import peerDiscovery
from libp2p.peer.id import ID
from libp2p.peer.peerinfo import PeerInfo
logger = logging.getLogger("libp2p.discovery.mdns.listner")
class PeerListener(ServiceListener):
"""mDNS listener — now a true ServiceListener subclass."""
@ -41,12 +44,12 @@ class PeerListener(ServiceListener):
self.discovered_services[name] = peer_info.peer_id
self.peerstore.add_addrs(peer_info.peer_id, peer_info.addrs, 10)
peerDiscovery.emit_peer_discovered(peer_info)
print("Discovered Peer:", peer_info.peer_id)
logger.debug("Discovered Peer:", peer_info.peer_id)
def remove_service(self, zc: Zeroconf, type_: str, name: str) -> None:
peer_id = self.discovered_services.pop(name)
self.peerstore.clear_addrs(peer_id)
print(f"Removed Peer: {peer_id}")
logger.debug(f"Removed Peer: {peer_id}")
def update_service(self, zc: Zeroconf, type_: str, name: str) -> None:
info = zc.get_service_info(type_, name, timeout=5000)
@ -56,7 +59,7 @@ class PeerListener(ServiceListener):
if peer_info:
self.peerstore.clear_addrs(peer_info.peer_id)
self.peerstore.add_addrs(peer_info.peer_id, peer_info.addrs, 10)
print("Updated Peer", peer_info.peer_id)
logger.debug("Updated Peer", peer_info.peer_id)
def _process_discovered_service(
self, zeroconf: Zeroconf, type_: str, name: str
@ -67,7 +70,7 @@ class PeerListener(ServiceListener):
peer_info = self._extract_peer_info(info)
if peer_info:
self.peerstore.add_addrs(peer_info.peer_id, peer_info.addrs, 10)
print("Discovered:", peer_info.peer_id)
logger.debug("Discovered:", peer_info.peer_id)
def _extract_peer_info(self, info: ServiceInfo) -> PeerInfo | None:
try:

View File

@ -4,6 +4,8 @@ Conforms to https://github.com/libp2p/specs/blob/master/discovery/mdns.md
Uses zeroconf for mDNS broadcast/listen. Async operations use trio.
"""
import logging
from zeroconf import (
Zeroconf,
)
@ -22,6 +24,8 @@ from .utils import (
stringGen,
)
logger = logging.getLogger("libp2p.discovery.mdns")
SERVICE_TYPE = "_p2p._udp.local."
MCAST_PORT = 5353
MCAST_ADDR = "224.0.0.251"
@ -56,7 +60,9 @@ class MDNSDiscovery:
def start(self) -> None:
"""Register this peer and start listening for others."""
print(f"Starting mDNS discovery for peer {self.peer_id} on port {self.port}")
logger.debug(
f"Starting mDNS discovery for peer {self.peer_id} on port {self.port}"
)
self.broadcaster.register()
# Listener is started in constructor