A TypeScript implementation of the DiscV5 protocol
Included is a libp2p peer-discovery compatibility module.
import { Discv5Discovery, ENR } from "@chainsafe/discv5";
import Libp2p from "libp2p";
import PeerId from "peer-id";
const myPeerId: PeerId = ...;
const bootstrapEnrs: ENR[] = [...];
const libp2p = new Libp2p({
peerId: myPeerId,
modules: {
peerDiscovery: [Discv5Discovery],
},
config: {
discv5: {
enr: ENR.createFromPeerId(myPeerInfo.id),
bindAddr: "/ip4/0.0.0.0/udp/9000",
bootstrapEnrs: bootstrapEnrs,
searchInterval: 30000, // wait 30s between searches
},
},
});
Apache-2.0