@chainsafe/discv5
TypeScript icon, indicating that this package has built-in type declarations

9.0.0 • Public • Published

discv5

ES Version Node Version

A TypeScript implementation of the DiscV5 protocol

Libp2p compatibility

Peer Discovery Compatible

Included is a libp2p peer-discovery compatibility module.

Example

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
    },
  },
});

Additional features

By default, importing this library will, as a side-effect, change the enr crypto implementation to use bcrypto. If you'd like to remain using @chainsafe/enr's default crypto you can add this after importing @chainsafe/discv5:

import {setV4Crypto, defaultCrypto} from "@chainsafe/enr";

setV4Crypto(defaultCrypto)

License

Apache-2.0

Package Sidebar

Install

npm i @chainsafe/discv5

Weekly Downloads

668

Version

9.0.0

License

Apache-2.0

Unpacked Size

432 kB

Total Files

207

Last publish

Collaborators

  • sadiq1971
  • ansermino
  • gregthegreek
  • priom
  • wemeetagain
  • mpetrunic