Files
py-libp2p/libp2p/discovery/events/peerDiscovery.py
sumanjeet0012@gmail.com 3262749db7 added event emmiter
2025-06-24 14:25:38 +05:30

38 lines
943 B
Python

from collections.abc import (
Awaitable,
Callable,
)
import trio
from libp2p.abc import (
PeerInfo,
)
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]]] = []
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:
for handler in self._peer_discovered_handlers:
await 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)
peerDiscovery.register_peer_discovered_handler(peerDiscoveryHandler)