From e2f95f4df3177a7352c8a10e04967157a2922ab2 Mon Sep 17 00:00:00 2001 From: "sumanjeet0012@gmail.com" Date: Fri, 20 Jun 2025 16:25:28 +0530 Subject: [PATCH] feat: emitted event from demo file --- examples/discovery/mDNS/mDNS.py | 11 ++++++++++- libp2p/discovery/events/peerDiscovery.py | 14 +++++++------- libp2p/discovery/mdns/listener.py | 9 ++++++++- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/examples/discovery/mDNS/mDNS.py b/examples/discovery/mDNS/mDNS.py index 996d8882..82dc0212 100644 --- a/examples/discovery/mDNS/mDNS.py +++ b/examples/discovery/mDNS/mDNS.py @@ -9,6 +9,15 @@ from libp2p import ( from libp2p.crypto.secp256k1 import ( create_new_key_pair, ) +from libp2p.discovery.events.peerDiscovery import ( + peerDiscovery +) +from libp2p.abc import ( + PeerInfo +) + +def customFunctoion(peerinfo: PeerInfo): + print("Printing peer info from demo file",repr(peerinfo)) async def main(): @@ -18,7 +27,7 @@ async def main(): # Listen on a random TCP port listen_addr = multiaddr.Multiaddr("/ip4/0.0.0.0/tcp/0") - + peerDiscovery.register_peer_discovered_handler(customFunctoion) # Enable mDNS discovery host = new_host(key_pair=key_pair, enable_mDNS=True) diff --git a/libp2p/discovery/events/peerDiscovery.py b/libp2p/discovery/events/peerDiscovery.py index 924998cd..6eefe381 100644 --- a/libp2p/discovery/events/peerDiscovery.py +++ b/libp2p/discovery/events/peerDiscovery.py @@ -14,24 +14,24 @@ TTL: int = 60 * 60 # Time-to-live for discovered peers in seconds class PeerDiscovery: def __init__(self) -> None: - self._peer_discovered_handlers: list[Callable[[PeerInfo], Awaitable[None]]] = [] + self._peer_discovered_handlers: list[Callable[[PeerInfo], None]] = [] def register_peer_discovered_handler( self, handler: Callable[[PeerInfo], Awaitable[None]] ) -> None: self._peer_discovered_handlers.append(handler) - async def emit_peer_discovered(self, peer_info: PeerInfo) -> None: + def emit_peer_discovered(self, peer_info: PeerInfo) -> None: for handler in self._peer_discovered_handlers: - await handler(peer_info) + handler(peer_info) peerDiscovery = PeerDiscovery() -async def peerDiscoveryHandler(peerInfo: PeerInfo) -> None: - await trio.sleep(5) # Simulate some processing delay - # print("Discovered peer is", peerInfo.peer_id) +# 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) +# peerDiscovery.register_peer_discovered_handler(peerDiscoveryHandler) diff --git a/libp2p/discovery/mdns/listener.py b/libp2p/discovery/mdns/listener.py index d8d44f38..2556f9d0 100644 --- a/libp2p/discovery/mdns/listener.py +++ b/libp2p/discovery/mdns/listener.py @@ -7,9 +7,15 @@ from zeroconf import ( Zeroconf, ) -from libp2p.abc import IPeerStore, Multiaddr +from libp2p.abc import ( + IPeerStore, + Multiaddr +) from libp2p.peer.id import ID from libp2p.peer.peerinfo import PeerInfo +from libp2p.discovery.events.peerDiscovery import ( + peerDiscovery +) class PeerListener(ServiceListener): @@ -39,6 +45,7 @@ class PeerListener(ServiceListener): if peer_info: 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) def remove_service(self, zc: Zeroconf, type_: str, name: str) -> None: