Skip to content

Specify Discovery v5 #48

@fjl

Description

@fjl

The existing discovery protocol has been around for a long time and has it's shortcomings. Some of those are listed in the specification.

There are a few things we want in the next version of the discovery protocol:

  • Being independent of the clock
  • Making traffic amplification prevention less weird
  • Relaying more node metadata
  • Indexing nodes by their capabilities
  • Obfuscating discovery traffic

Some of these things, specifically the 'node metadata' parts are solved by ENR. We can even fit them into the existing protocol using the ENR extension.

We also have a prototype implementation of the indexing mechanism in go-ethereum, and a pretty clear idea about the wire protocol. But nothing is set in stone yet.

What remains to be done is:

  • Writing the wire protocol spec as an EIP.
  • Specifying the upgrade procedure. We will likely announce the version through ENR but need a document that says what the key/value pair for that is and how the protocols can coexist on the same UDP port.

If you want to start implementing discovery v5 now, it is best to start with ENR and the v4 extension.


Remaining tasks for this tracking issue:

  • Commit initial wire protocol draft
  • Commit initial requirements document draft
  • Commit topic table spec draft
  • Move ENR specification to this repo
  • Write short explainer document that ties all the specs together

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions