Replies: 2 comments 1 reply
-
Thanks for writing this up @coot. This distinction makes it easier to wrap my head around 😄 I just have one question. You mentioned the existence of bootstrap peers as one of the conditions (the other being pre/post-genesis) to how things should behave, however you can have |
Beta Was this translation helpful? Give feedback.
-
So we chatted about this and we believe this was very confusing. To mitigate that consider the following data types: data UseBootstrapPeers domain = DontUseBootstrapPeers
| FallbackToPublicRootPeersBefore SlotId
| AlwaysUsePublicRootPeers Essentially this is the
|
Beta Was this translation helpful? Give feedback.
-
Post-Genesis (no bootstrap peers)
Genesis doesn't require bootstrap peers (we can assume
NoBootstrapPeers
), so this is the simplest caseFallbackToRoots SlotId
DontFallbackToRoots
UseLedgerPeers
DontUseLedgerPeers
In particular the
UseLedgerPeers & DontFallbackToRoots
can be used by relays which already synced. Unless a relay get's disconnected from the network it needs to sync, while there's available snapshot which is more recent than it's own chain.edge nodes: for example a full node wallet which runs on an end-consumer hardware which can be turned off periodically.
Pre-Genesis (with bootstrap peers)
Before genesis we can be given bootstrap peers. If they are not given it should work as above, however when
BootstrapPeers peers
are given thenFallbackToRoots SlotId
DontFallbackToRoots
UseLedgerPeers
DontUseLedgerPeers
note 1
Consider
UseLedgerPeers
,FallbackToRoots
&BootstrapPeers
. This would mean we want to useLedgerPeers
after a given slot but use bootstrap peers if we are far from the tip, so it means we will be using ledger peers if we are after the given slot and synced. But the condition to be synced is stronger than be after the given slot. So the meaning is the same asUseLedgerPeers
,DontFallbackToRoots
&BootstrapPeers
.I think we should still support this configuration (even though it's meaning is the same as the other configuration), because it will give clean transition for edge nodes from pre-genesis to post-genesis era.
Beta Was this translation helpful? Give feedback.
All reactions