High level summary
This past two weeks saw many months worth of ledger changes integrated with the cardano-base
and ouroboros-network
repositories.
The vast majority of the effort involved all the changes to the ledger serialization libraries
(and the interplay with cardano-base
) which now support proper versioning.
Supporting the conway ledger era, and in particular allowing the ledger state to transition
to a whole new system of governance, also played a noticeable part in the integration.
Besides the integration work, the team continues to address technical debt, improve the documentation, make our testing infrastructure better (such as experimenting with better nightly tests), and formally specifying more parts of CIP-1694.
Lower level summary
Integration work
Below is all the integration work completed, which will enable a release to node from the current ledger master. Many thanks to Alexey for this colossal undertaking!
- pull-3303
- pull-3302
- pull-3300
- pull-3299
- pull-3298
- pull-3297
- pull-3292
- pull-3289
- pull-3288
- pull-3279
- pull-3282
- pull-4349
Technical debt
Starting in major protocol version 9, zero-valued multi-assets will no longer be permitted in the CBOR specification. See pull-3241.
We now have our .cabal
files being checked for a consistent formatting given by
cabal format
in our CI. See pull-3286.
We are still experimenting with better nightly tests for our long running property based tests. See pull-3276 and pull-3296.
Small documentation improvements
The hand proofs of the preservation ADA property have been added back to the Shelley ledger specification. See pull-3295.
We have clarified how the script integrity hash is computed in the CDDL description. See pull-3290.
Specifying CIP-1694
Our new formal specifications backed by Agda have seen a lot of progress! Upgrading to Agda 2.6.3 fixed our main build infrastructure problems, and we no longer have to rely on our custom fork. See pull-50.
Our progress on formally specifying CIP-1694 can be followed here:
Constraint based testing
We are still actively working on our new constraint based property testing framework. We have nearly all of the constraints for an entire ledger state hooked into generators, and tests that the generators do indeed obey the constraints. The variable count in the constraints is over 100! There is still much work to do on shrinking, making the generators faster, and writing actual property tests for the ledger, but the approach still seems viable and we are hopeful that it could replace our trace generators. The WIP can be followed here: pull-3219.