Files
py-libp2p/examples/discovery/mDNS/mDNS.py
2025-06-24 14:25:39 +05:30

45 lines
1.0 KiB
Python

import secrets
import multiaddr
import trio
from libp2p import (
new_host,
)
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():
# Generate a key pair for the host
secret = secrets.token_bytes(32)
key_pair = create_new_key_pair(secret)
# 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)
async with host.run(listen_addrs=[listen_addr]):
# Print discovered peers via mDNS
try:
while True:
await trio.sleep(100)
except KeyboardInterrupt:
print("Exiting...")
if __name__ == "__main__":
trio.run(main)