Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continuously re-resolve HTTP bootnode ENRs #952

Closed
corverroos opened this issue Aug 9, 2022 · 1 comment
Closed

Continuously re-resolve HTTP bootnode ENRs #952

corverroos opened this issue Aug 9, 2022 · 1 comment
Assignees

Comments

@corverroos
Copy link
Contributor

Problem to be solved

Charon currently only resolves the bootnode ENR from HTTP once on startup. That means that if that bootnode is replaced by another bootnode (different ENR but same HTTP resolve address), it requires a restart of charon to re-resolve and connect to the new bootnode.

This is not great UX.

Proposed solution

Charon should resolve bootnode ENR on a periodic bases, once every 5mins.
If a different ENR is returned than previously, it should update

  • Discv5 udpNode.Resolve/Lookup to add the new enode to the peer discovery protocol
  • Libp2p adaptDiscRouting should return the new relay addresses.
  • Might need to introduce a level of indirection ito relay definition, so bootnodeProvider func() ma.MultiAddr or something like

Out of Scope

A proper solution is long-lived bootnodes that maintain their ENRs across restarts.

@corverroos
Copy link
Contributor Author

This is blocked by #985

obol-bulldozer bot pushed a commit that referenced this issue Aug 18, 2022
Introduces the `p2p.MutablePeer` that can change over time, integrate that with all the logic using relays/bootnodes. Continuously resolve HTTP bootnode ENRs, and update `MutablePeer`.

category: feature
ticket: #952
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant