ouroboros-consensus
ouroboros-consensus copied to clipboard
Bootstrap GSM tech debt
Taken from https://github.com/IntersectMBO/ouroboros-consensus/pull/808#issuecomment-1954913114, upon clicking the "Merge when ready" button.
- [x] s-r-p stanzas (see https://github.com/IntersectMBO/ouroboros-consensus/pull/808#discussion_r1490714381)
- [ ] Either move the GSM logic into the ChainDB and keep the GSM arguments as part of the ChainDB arguments (which would be encapsulated inside of openChainDB) or remove the argument from the ChainDB arguments and keep it as a NodeKernel-level thing.
- [ ] move the anti-thundering herd delay into the Diffusion Layer, between the two states CaughtUp and OnlyBootstrap
- regression tests (code review and ad-hoc manual testing has already evidenced that they're currently correct):
- [ ]
realMarkerFileView
regression tests - [ ]
initializationLedgerJudgement
regression tests - [ ]
realDurationUntilTooOld
regression tests - [ ] The ChainSync client should signal idle exactly when and only when the
MsgAwaitReply
is processed. - [ ] The ChainSync client subsequently should signal no-longer-idle exactly when and only when the next message is received.
- [ ]
- [ ] #1149
- [ ] use
ArbitraryLedgerStateJudgement
fromouroboros-network:sim-tests-lib
- Either move the GSM logic into the ChainDB and keep the GSM arguments as part of the ChainDB arguments (which would be encapsulated inside of
openChainDB
) or remove the argument from the ChainDB arguments and keep it as a NodeKernel-level thing.
~What is the status of the non-bootstrap GSM? Have we ever implemented one?~ What I meant is whether the Genesis SoW is finished and we've integrated it?
Yes, the GSM now actually deserves its name. The changes for that were rather small:
- https://github.com/IntersectMBO/ouroboros-consensus/pull/975
- https://github.com/IntersectMBO/ouroboros-consensus/pull/1031
The tasks in this ticket should be independent of that.