Skip to main content

Discv5

Discv5 is a decentralised and efficient peer discovery mechanism for the Waku Network. It uses a Distributed Hash Table (DHT) for storing ENR records, providing resistance to censorship. Discv5 offers a global view of participating nodes, enabling random sampling for load distribution. It uses bootstrap nodes as an entry point to the network, providing randomised sets of nodes for mesh expansion. Have a look at the Discv5 specification to learn more.

Pros

  • Decentralised with random sampling from a global view.
  • Continuously researched and improved.

Cons

  • Requires lots of connections and involves frequent churn.
  • Relies on User Datagram Protocol (UDP), which is not supported in web browsers.

Overview

  1. DNS Discovery protocol is executed.
  2. Alice retrieves Bob's ENR (Ethereum Node Record) from DNS Server.
  3. Alice executes the Discv5 protocol with Bob using UDP connection details from ENR.
  4. Bob returns Carol's, David's and Erin's ENRs to Alice.
  5. Alice decodes ENRs and extracts the details of Carol, David, and Erin's TCP and UDP connections.
  6. Alice executes the Discv5 protocol with Carol using UDP connection details from ENR.
  7. Carol returns Frank's, Gwen's and Harry's ENRs to Alice.
  8. Alice decodes ENRs and extracts Frank's, Gwen's and Harry's TCP and UDP connection details.
  9. Alice selects to dial David, Frank and Gwen.
  10. Alice dials David, Frank and Gwen over libp2p using TCP connection details from ENRs.