Home / Input Output / cardano-ledger
Mar 03, 6-7 PM (0)
Mar 03, 7-8 PM (0)
Mar 03, 8-9 PM (0)
Mar 03, 9-10 PM (0)
Mar 03, 10-11 PM (2)
Mar 03, 11-12 AM (0)
Mar 04, 12-1 AM (2)
Mar 04, 1-2 AM (0)
Mar 04, 2-3 AM (0)
Mar 04, 3-4 AM (0)
Mar 04, 4-5 AM (2)
Mar 04, 5-6 AM (0)
Mar 04, 6-7 AM (1)
Mar 04, 7-8 AM (7)
Mar 04, 8-9 AM (0)
Mar 04, 9-10 AM (0)
Mar 04, 10-11 AM (0)
Mar 04, 11-12 PM (2)
Mar 04, 12-1 PM (0)
Mar 04, 1-2 PM (7)
Mar 04, 2-3 PM (1)
Mar 04, 3-4 PM (0)
Mar 04, 4-5 PM (0)
Mar 04, 5-6 PM (0)
Mar 04, 6-7 PM (0)
Mar 04, 7-8 PM (0)
Mar 04, 8-9 PM (4)
Mar 04, 9-10 PM (0)
Mar 04, 10-11 PM (0)
Mar 04, 11-12 AM (0)
Mar 05, 12-1 AM (0)
Mar 05, 1-2 AM (0)
Mar 05, 2-3 AM (0)
Mar 05, 3-4 AM (0)
Mar 05, 4-5 AM (0)
Mar 05, 5-6 AM (0)
Mar 05, 6-7 AM (0)
Mar 05, 7-8 AM (0)
Mar 05, 8-9 AM (0)
Mar 05, 9-10 AM (1)
Mar 05, 10-11 AM (1)
Mar 05, 11-12 PM (0)
Mar 05, 12-1 PM (0)
Mar 05, 1-2 PM (6)
Mar 05, 2-3 PM (0)
Mar 05, 3-4 PM (0)
Mar 05, 4-5 PM (0)
Mar 05, 5-6 PM (0)
Mar 05, 6-7 PM (0)
Mar 05, 7-8 PM (0)
Mar 05, 8-9 PM (0)
Mar 05, 9-10 PM (0)
Mar 05, 10-11 PM (1)
Mar 05, 11-12 AM (0)
Mar 06, 12-1 AM (0)
Mar 06, 1-2 AM (0)
Mar 06, 2-3 AM (0)
Mar 06, 3-4 AM (0)
Mar 06, 4-5 AM (2)
Mar 06, 5-6 AM (0)
Mar 06, 6-7 AM (0)
Mar 06, 7-8 AM (0)
Mar 06, 8-9 AM (0)
Mar 06, 9-10 AM (0)
Mar 06, 10-11 AM (1)
Mar 06, 11-12 PM (0)
Mar 06, 12-1 PM (8)
Mar 06, 1-2 PM (1)
Mar 06, 2-3 PM (0)
Mar 06, 3-4 PM (2)
Mar 06, 4-5 PM (0)
Mar 06, 5-6 PM (0)
Mar 06, 6-7 PM (0)
Mar 06, 7-8 PM (0)
Mar 06, 8-9 PM (0)
Mar 06, 9-10 PM (0)
Mar 06, 10-11 PM (0)
Mar 06, 11-12 AM (0)
Mar 07, 12-1 AM (0)
Mar 07, 1-2 AM (0)
Mar 07, 2-3 AM (0)
Mar 07, 3-4 AM (0)
Mar 07, 4-5 AM (0)
Mar 07, 5-6 AM (0)
Mar 07, 6-7 AM (0)
Mar 07, 7-8 AM (0)
Mar 07, 8-9 AM (0)
Mar 07, 9-10 AM (0)
Mar 07, 10-11 AM (0)
Mar 07, 11-12 PM (0)
Mar 07, 12-1 PM (0)
Mar 07, 1-2 PM (0)
Mar 07, 2-3 PM (0)
Mar 07, 3-4 PM (0)
Mar 07, 4-5 PM (0)
Mar 07, 5-6 PM (0)
Mar 07, 6-7 PM (0)
Mar 07, 7-8 PM (0)
Mar 07, 8-9 PM (0)
Mar 07, 9-10 PM (0)
Mar 07, 10-11 PM (0)
Mar 07, 11-12 AM (0)
Mar 08, 12-1 AM (0)
Mar 08, 1-2 AM (0)
Mar 08, 2-3 AM (0)
Mar 08, 3-4 AM (0)
Mar 08, 4-5 AM (0)
Mar 08, 5-6 AM (0)
Mar 08, 6-7 AM (0)
Mar 08, 7-8 AM (0)
Mar 08, 8-9 AM (0)
Mar 08, 9-10 AM (0)
Mar 08, 10-11 AM (0)
Mar 08, 11-12 PM (0)
Mar 08, 12-1 PM (0)
Mar 08, 1-2 PM (0)
Mar 08, 2-3 PM (0)
Mar 08, 3-4 PM (0)
Mar 08, 4-5 PM (0)
Mar 08, 5-6 PM (0)
Mar 08, 6-7 PM (0)
Mar 08, 7-8 PM (0)
Mar 08, 8-9 PM (0)
Mar 08, 9-10 PM (0)
Mar 08, 10-11 PM (0)
Mar 08, 11-12 AM (0)
Mar 09, 12-1 AM (0)
Mar 09, 1-2 AM (0)
Mar 09, 2-3 AM (0)
Mar 09, 3-4 AM (0)
Mar 09, 4-5 AM (0)
Mar 09, 5-6 AM (0)
Mar 09, 6-7 AM (0)
Mar 09, 7-8 AM (0)
Mar 09, 8-9 AM (0)
Mar 09, 9-10 AM (0)
Mar 09, 10-11 AM (0)
Mar 09, 11-12 PM (0)
Mar 09, 12-1 PM (0)
Mar 09, 1-2 PM (0)
Mar 09, 2-3 PM (0)
Mar 09, 3-4 PM (0)
Mar 09, 4-5 PM (5)
Mar 09, 5-6 PM (0)
Mar 09, 6-7 PM (1)
Mar 09, 7-8 PM (0)
Mar 09, 8-9 PM (0)
Mar 09, 9-10 PM (0)
Mar 09, 10-11 PM (0)
Mar 09, 11-12 AM (0)
Mar 10, 12-1 AM (0)
Mar 10, 1-2 AM (0)
Mar 10, 2-3 AM (0)
Mar 10, 3-4 AM (0)
Mar 10, 4-5 AM (0)
Mar 10, 5-6 AM (0)
Mar 10, 6-7 AM (0)
Mar 10, 7-8 AM (0)
Mar 10, 8-9 AM (1)
Mar 10, 9-10 AM (7)
Mar 10, 10-11 AM (2)
Mar 10, 11-12 PM (0)
Mar 10, 12-1 PM (4)
Mar 10, 1-2 PM (2)
Mar 10, 2-3 PM (6)
Mar 10, 3-4 PM (0)
Mar 10, 4-5 PM (0)
Mar 10, 5-6 PM (2)
Mar 10, 6-7 PM (0)
81 commits this week Mar 03, 2026 - Mar 10, 2026
Refactor DijkstraBBODY, use DijkstraEraBlockHeader.
Introduce DijkstraEraBlockHeader to have a lens to the previous nonce,
and the DijkstraBbodySignal type to constrain the header existantially,
same as for BbodySignal.

Move PerasCert, PerasKey and validatePerasCert to dijkstra's BlockBody.

Remove PrevEpochNonceNotPresent because the field is implicitly present
in the signal to the BBODY rule now.

Refactor the dijkstra BBODY rule to reuse validations from shelley,
alonzo, conway, inlined, because the change in the type of Signal makes
calling earlier BBODY transitions impossible.
Refactor DijkstraBBODY, use DijkstraEraBlockHeader.
Introduce DijkstraEraBlockHeader to have a lens to the previous nonce,
and the DijkstraBbodySignal type to constrain the header existantially,
same as for BbodySignal.

Move PerasCert, PerasKey and validatePerasCert to dijkstra's BlockBody.

Remove PrevEpochNonceNotPresent because the field is implicitly present
in the signal to the BBODY rule now.

Refactor the dijkstra BBODY rule to reuse validations from shelley,
alonzo, conway, inlined, because the change in the type of Signal makes
calling earlier BBODY transitions impossible.
Deprecate BHeaderView in favour of EraBlockHeader.
A block is made up of a header and a body. Ledger needs to process
blocks but is nescient of the header type. One such header type is
defined in the tpraos package and another is defined in consensus. Both
these packages depend on core and the eras and so ledger cannot import
from them.

BHeaderView was an inferior[1] arrangement to convert a Block h era into
a type with known fields. EraBlockHeader now defines a set of lenses for
this, instead.

Consensus[2] calls ledger's applyBlock and the BBODY rules, which need
access to the values from the header, now with the help of lenses.

So we existentially quantify the unknown header type h to pass to BBODY
rules, using the newly introduced BbodySignal type.

For tests, we replace BHeaderView with TestBlockHeader and
makeHeaderView with mkTestBlockHeaderNoNonce.

Ref: https://github.com/IntersectMBO/cardano-ledger/issues/5541

[1]: https://github.com/IntersectMBO/cardano-ledger/pull/5467#discussion_r2727225059
[2]: https://github.com/IntersectMBO/ouroboros-consensus/blob/1940605fbbfb50032ab78e2268b85065c703cd2a/ouroboros-consensus-cardano/src/shelley/Ouroboros/Consensus/Shelley/Protocol/Praos.hs#L196-L202