Make the HFC aware of Peras rounds #1606
Open
+352
−37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes tweag/cardano-peras#65
Changes
EraParams
now keeps track of an optional Peras round length.Bound
now keeps track of an optional Peras round number.Serialise
instances forEraParams
andBound
, the encoders generate different CBOR depending on whether of not the Peras-relate components are present. The decoders act differently depending on the length of the CBOR list.EraSummary
, while not modified directly, is now Peras-aware viaEraParams
andBound
:EraSummary
s haddock and ininvariantSummary
's implementation.Two new top-level queries are exposed from
Ouroboros.Consensus.HardFork.History.Qry
:add a roundtrip test that ensures that converting Peras round number to a slot and then back is an identity is added into the
Test.Consensus.HardFork.Summary
module.add a Peras-specific test into
Test.Consensus.HardFork.History
module.Suggested review order
Even though this PR affects many files, the bulk of the changes is localised. I suggest the following review order:
ouroboros-consensus/Ouroboros/Consensus/HardFork/History/EraParams.hs
andouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/HardFork/History/Summary.hs
ouroboros-consensus/src/ouroboros-consensus/Ouroboros/Consensus/HardFork/History/Qry.hs
consensus-test/Test/Consensus/HardFork/History.hs
andconsensus-test/Test/Consensus/HardFork/Summary.hs