Home / IntersectMBO / cardano-ledger
Feb 09, 4-5 AM (0)
Feb 09, 5-6 AM (0)
Feb 09, 6-7 AM (5)
Feb 09, 7-8 AM (0)
Feb 09, 8-9 AM (2)
Feb 09, 9-10 AM (1)
Feb 09, 10-11 AM (0)
Feb 09, 11-12 PM (0)
Feb 09, 12-1 PM (5)
Feb 09, 1-2 PM (3)
Feb 09, 2-3 PM (0)
Feb 09, 3-4 PM (2)
Feb 09, 4-5 PM (0)
Feb 09, 5-6 PM (0)
Feb 09, 6-7 PM (2)
Feb 09, 7-8 PM (0)
Feb 09, 8-9 PM (2)
Feb 09, 9-10 PM (0)
Feb 09, 10-11 PM (0)
Feb 09, 11-12 AM (0)
Feb 10, 12-1 AM (0)
Feb 10, 1-2 AM (0)
Feb 10, 2-3 AM (0)
Feb 10, 3-4 AM (0)
Feb 10, 4-5 AM (0)
Feb 10, 5-6 AM (0)
Feb 10, 6-7 AM (9)
Feb 10, 7-8 AM (0)
Feb 10, 8-9 AM (15)
Feb 10, 9-10 AM (1)
Feb 10, 10-11 AM (0)
Feb 10, 11-12 PM (1)
Feb 10, 12-1 PM (0)
Feb 10, 1-2 PM (5)
Feb 10, 2-3 PM (0)
Feb 10, 3-4 PM (1)
Feb 10, 4-5 PM (4)
Feb 10, 5-6 PM (2)
Feb 10, 6-7 PM (0)
Feb 10, 7-8 PM (0)
Feb 10, 8-9 PM (1)
Feb 10, 9-10 PM (1)
Feb 10, 10-11 PM (1)
Feb 10, 11-12 AM (0)
Feb 11, 12-1 AM (0)
Feb 11, 1-2 AM (0)
Feb 11, 2-3 AM (0)
Feb 11, 3-4 AM (0)
Feb 11, 4-5 AM (0)
Feb 11, 5-6 AM (0)
Feb 11, 6-7 AM (0)
Feb 11, 7-8 AM (0)
Feb 11, 8-9 AM (1)
Feb 11, 9-10 AM (0)
Feb 11, 10-11 AM (0)
Feb 11, 11-12 PM (0)
Feb 11, 12-1 PM (2)
Feb 11, 1-2 PM (0)
Feb 11, 2-3 PM (1)
Feb 11, 3-4 PM (0)
Feb 11, 4-5 PM (0)
Feb 11, 5-6 PM (0)
Feb 11, 6-7 PM (0)
Feb 11, 7-8 PM (0)
Feb 11, 8-9 PM (0)
Feb 11, 9-10 PM (0)
Feb 11, 10-11 PM (0)
Feb 11, 11-12 AM (0)
Feb 12, 12-1 AM (0)
Feb 12, 1-2 AM (0)
Feb 12, 2-3 AM (0)
Feb 12, 3-4 AM (0)
Feb 12, 4-5 AM (0)
Feb 12, 5-6 AM (0)
Feb 12, 6-7 AM (0)
Feb 12, 7-8 AM (4)
Feb 12, 8-9 AM (0)
Feb 12, 9-10 AM (0)
Feb 12, 10-11 AM (5)
Feb 12, 11-12 PM (0)
Feb 12, 12-1 PM (5)
Feb 12, 1-2 PM (2)
Feb 12, 2-3 PM (0)
Feb 12, 3-4 PM (0)
Feb 12, 4-5 PM (0)
Feb 12, 5-6 PM (0)
Feb 12, 6-7 PM (0)
Feb 12, 7-8 PM (1)
Feb 12, 8-9 PM (0)
Feb 12, 9-10 PM (0)
Feb 12, 10-11 PM (0)
Feb 12, 11-12 AM (1)
Feb 13, 12-1 AM (0)
Feb 13, 1-2 AM (0)
Feb 13, 2-3 AM (0)
Feb 13, 3-4 AM (0)
Feb 13, 4-5 AM (0)
Feb 13, 5-6 AM (0)
Feb 13, 6-7 AM (11)
Feb 13, 7-8 AM (0)
Feb 13, 8-9 AM (2)
Feb 13, 9-10 AM (1)
Feb 13, 10-11 AM (0)
Feb 13, 11-12 PM (4)
Feb 13, 12-1 PM (0)
Feb 13, 1-2 PM (0)
Feb 13, 2-3 PM (1)
Feb 13, 3-4 PM (2)
Feb 13, 4-5 PM (0)
Feb 13, 5-6 PM (0)
Feb 13, 6-7 PM (1)
Feb 13, 7-8 PM (0)
Feb 13, 8-9 PM (0)
Feb 13, 9-10 PM (0)
Feb 13, 10-11 PM (0)
Feb 13, 11-12 AM (0)
Feb 14, 12-1 AM (0)
Feb 14, 1-2 AM (0)
Feb 14, 2-3 AM (0)
Feb 14, 3-4 AM (0)
Feb 14, 4-5 AM (0)
Feb 14, 5-6 AM (0)
Feb 14, 6-7 AM (0)
Feb 14, 7-8 AM (0)
Feb 14, 8-9 AM (0)
Feb 14, 9-10 AM (2)
Feb 14, 10-11 AM (0)
Feb 14, 11-12 PM (0)
Feb 14, 12-1 PM (0)
Feb 14, 1-2 PM (0)
Feb 14, 2-3 PM (0)
Feb 14, 3-4 PM (0)
Feb 14, 4-5 PM (0)
Feb 14, 5-6 PM (2)
Feb 14, 6-7 PM (0)
Feb 14, 7-8 PM (3)
Feb 14, 8-9 PM (0)
Feb 14, 9-10 PM (0)
Feb 14, 10-11 PM (0)
Feb 14, 11-12 AM (0)
Feb 15, 12-1 AM (0)
Feb 15, 1-2 AM (0)
Feb 15, 2-3 AM (0)
Feb 15, 3-4 AM (0)
Feb 15, 4-5 AM (0)
Feb 15, 5-6 AM (0)
Feb 15, 6-7 AM (2)
Feb 15, 7-8 AM (0)
Feb 15, 8-9 AM (3)
Feb 15, 9-10 AM (0)
Feb 15, 10-11 AM (2)
Feb 15, 11-12 PM (0)
Feb 15, 12-1 PM (0)
Feb 15, 1-2 PM (0)
Feb 15, 2-3 PM (0)
Feb 15, 3-4 PM (0)
Feb 15, 4-5 PM (0)
Feb 15, 5-6 PM (1)
Feb 15, 6-7 PM (0)
Feb 15, 7-8 PM (0)
Feb 15, 8-9 PM (0)
Feb 15, 9-10 PM (0)
Feb 15, 10-11 PM (0)
Feb 15, 11-12 AM (0)
Feb 16, 12-1 AM (0)
Feb 16, 1-2 AM (0)
Feb 16, 2-3 AM (0)
Feb 16, 3-4 AM (0)
Feb 16, 4-5 AM (0)
122 commits this week Feb 09, 2026 - Feb 16, 2026
Remove `ssNumDelegators`
That filed can be removed, since it was only used to filter out
stake pools that didn't have delegators for the purpose of
calculation of `PoolDistr` and in the ledger state `GetStakeSnapshots`
query. The reason why we can remove this field and preserve previous
behavior is because stake pool will not have any delegations iff such
pool also doesn't have any stake associated with it. That is because
delegations with zero stake are filtered out as part of
`resolveInstantStake` computation.
Make `ssDelegations` strict
That field is actually needed for the rewards pulser. However, the goal
is to reduce the number of tables that will be needed for LedgerHD and
this field can be removed, since it, by definition, has a domain that is
a superset of `ssActiveStake` and it is only the entries that are
also present in `ssActiveStake` that are needed, because for reward
calculation we need non-zero stake taht is delegated to a stake pool.

Therefore this filed is marked to be subsumed by the `ssActiveStake`
Refactor DijkstraBBODY, use DijkstraEraBlockHeader.
Introduce DijkstraEraBlockHeader to have a lens to the previous nonce,
and the DijkstraBbodySignal GADT 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 wrap the unknown header type h in a GADT to pass to BBODY rules,
called BbodySignal.

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