Ledger Team Update
High level summary
Leios continued to be the main focus this cycle and moved well beyond prototype on several fronts. Dijkstra forecasting for Leios landed, the forecasting itself was simplified by keeping stake data only in snapshots, and DijkstraEraForecast was extended with the Peras protocol parameters. We defined Leios' EndorserBlock, added a ledger state query for the Leios committee, switched the Leios header KES signature verification to use MemoBytes, and fixed pool BLS key handling so the key's epoch number is only renewed when the key is actually new. These were backed by tests for the Leios committee and stake distribution when injecting genesis data, and by integration of the latest Leios changes for week 41.
PlutusV4 reached a milestone for the Dijkstra era: eraMaxLanguage is now set to PlutusV4, and AlonzoTxWits encodes and decodes PlutusV4 scripts starting with Dijkstra. Work on sub-transactions continued, with allInputsTxBodyF now looking into sub-transactions, top-level supplemental datums allowed for sub-transactions, and tests added for refunds in the consumed value across a batch. On the Dijkstra era more broadly, we fixed VRF reuse at the epoch boundary, started tracking the VRF key hashes of genesis stake pools, moved NonMyopicMemberRewards into the ledger, added missing getters to AnyEraTxBody, and renamed requiredTopLevelGuardsL while bringing in its outstanding tests.
On testing and releasing we added further Entities tests, treasury value and reference-script size tests, enabled bootstrap addresses in conformance, updated the formal ledger specification, and bumped the Plinth version in the Plutus preprocessor modules. Infrastructure changes included a cardano-data changelog fix for the pointWise to pointwise rename, a round of package version bumps across the changelogs following a CHaP release, and the usual dependency bump.
Low level summary
Features
- PR-6124 - Make
AlonzoTxWitsdecode and encode PlutusV4 scripts starting with Dijkstra - PR-6129 - Switch
allInputsTxBodyFto look into sub-transactions - PR-6130 - Move NonMyopicMemberRewards to Ledger
- PR-6140 - Add missing getters to AnyEraTxBody
- PR-6120 - Use MemoBytes for Leios header KES signature verification
- PR-6134 - Simplify forecasting by keeping stake data only in snapshots
- PR-6137 - Allow TopTx SupplementalDatums for SubTx
- PR-6148 - Add Dijkstra forecasting for Leios
- PR-6092 - Fix VRF reuse at epoch boundary in Dijkstra
- PR-6133 - Track the VRF key hashes of genesis stake pools in Dijkstra
- PR-6136 - Rename
requiredTopLevelGuardsLand add tests from #6020 - PR-6126 - Extend DijkstraEraForecast with Peras protocol parameters
- PR-6168 - Add ledger state query for Leios committee
- PR-6170 - Renew pool BLS key epoch number only when the key is new
- PR-6174 - Define Leios' EndorserBlock
Testing
- PR-6125 - Tests for refunds in the consumed value across a batch
- PR-6109 - Set Dijkstra's
eraMaxLanguagetoPlutusV4, fix tests - PR-6141 - Bump Plinth version in plutus preprocessor modules
- PR-6132 - Additional Entities tests
- PR-6156 - TreasuryValue and RefScriptSize tests
- PR-6167 - Add tests for verifying Leios committee and stake distribution when injecting genesis data
- PR-6149 - Update formal ledger specification
- PR-6182 - Enable boostrap addresses in conformance



