Skip to content

Full Loop ENR support #1561

@shemnon

Description

@shemnon

Description

As a node operator, I want full loop ENR support with DNS and P2P discovery so that finding and becoming a Goerli node is less awful.

Every 8 hours the Ethereum Foundation runs a sweeper that polls the Distributed Hash Table of the DNS discovery and updates the ENR records in their DNS resolver, and the results are stored in https://github.com/ethereum/discv4-dns-lists

Ultimately we want to support ENS so we both gather nodes from that DNS list to boost our discovery efforts as well as add info to our discovery packets so that the EF adds us to that list of nodes.

Acceptance Criteria

Relevant Standards

There are roughly 3 things we need to do:

  1. Create and update local ENR entries for the node. This will likely involve storing them in the key value store between runs and generating a new record in case things change. There are likely corner cases around node keys changing between runs.
  2. Add the current ENR record information to the P2P discovery broadcasts (EIP-868).
  3. Seed the discovery manager with results from the DNS entries at the discv4-dns-lists. Treat these as query responses, not as static nodes or boot nodes. Although when we do a boot node refresh we may want to do a DNS refresh. We my not want to dump all of them into discovery immediately but perhaps dribble them in 25 at a time or so.

2 and 3 can swap order if desired

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions