ouroboros-network
ouroboros-network copied to clipboard
Draft: Genesis exploration
The way I implemented prefix selection for now is as follows:

Implemented:
- Currently prefix selection is just a step before BlockFetch decision logic that will provide an updated map of candidates if we are in Syncing mode.
- Genesis window length is now a parameter of the consensus config that for now MUST NOT change between eras (à la
k).
Open questions:
- How to define Caught up and Syncing?
- In CaughtUp mode, should BlockFetch receive all the candidates and download them following its own policies (network timing, then length) or should we only provide certain candidates?
Pending changes:
- property tests.
- the
TODO @jscomments here and there
Some general and superficial remarks:
- for most of the new functions it'd be great to have:
- examples in the docstrings
- property tests
- unit-tests/doctests to illustrate what they do
- for prefix selection, would it make sense to have:
- an asymptotic complexity analysis
Javier closed this because it's bitrot. He's on UTxO HD now; Esgen and I are on Genesis.
Javier's worked here helped drive some good discussions with me. And I'm hopeful we can harvest some parts when Esgen and I start implementing the design.