You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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
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
adaptDiscRouting
should return the new relay addresses.bootnodeProvider func() ma.MultiAddr
or something likeOut of Scope
A proper solution is long-lived bootnodes that maintain their ENRs across restarts.
The text was updated successfully, but these errors were encountered: