High level summary
This update contains mostly improvements to quality of Conway era implementation and
tooling that we use for testing Ledger. Major Conway bugs that were discovered and
squashed are:
- PParamsUpdate proposals will now correctly use DRep thresholds for ratification
- Treasury withdrawals are now properly enacted.
- Corrected snapshotting and DRep Stake Distribution Pulser initialization
- Delegation to non-existent Stake pool is no longer possible
Other important quality of life improvements are addition of reusable interfaces for an
ordered set OSet
and ordered map OMap
. Which allowed us to disable duplicate
certificates and proposals in a transaction. As a precursor to PlutusV3
integration, a
serious reorganization of Plutus related functionality was performed.
Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on
expired proposals, addition of Anchor to Constitutional Committee resignation proposals.
Significant improvements have been made to a specialized "Imp" test library that allows us
writing concise stateful unit tests for verifying the Ledger logic. Serious progress has
been made on the conformance testing, where we can now interface with Haskell generated
code from the Agda specification. Serialization testing has been extended to increase
binary conformance coverage.
Low level summary
Conway
- pull-3808 - Enhance
CommitteeMembersState
query to return quorum and NoConfidence - pull-3801 - Fix epoch rule and tests
- pull-3803 - Fix delegation validation
- pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
- pull-3779 - Prevent duplicate certs and proposals
- pull-3794 - Added anchor to resign certs
- pull-3797 - Cleanup JSON instances for Conway governance
- pull-3848 - Plutus modules restructure
- pull-3840 - Fix anomalies in Deposits in the Conway Era
- pull-3856 - Add governance related ledger events
- pull-3825 - Prevent voting on expired GovActions
- pull-3831 - Treasury withdrawal fix
- pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
- pull-3836 - PParamsUpdate enactment fix
- pull-3846 - Revert argument order swap.
Testing
- pull-3782 - Move
ImpTest
to Shelley testlib - pull-3842 - Imp improvements
- pull-3844 - Add mappings to Agda types
- pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
- pull-3809 - CDDL roundtrip testing
- pull-3832 - Treasury withdrawals tests
- pull-3839 - Added
cardano-ledger-conformance
- pull-3841 - Add
sha256
to cardano-ledger-executable-spec
Improvements and releasing
- pull-3843 - Add ...WithLogs versions of evalScripts and friends
- pull-3795 - Bump plutus to 1.15
- pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
- pull-3799 - Changes needed for 8.6 release
- pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
- pull-3819 - Fixups needed for a release
- pull-3829 - Post release CHANGELOG version bumps
- pull-3830 - Bump aeson to 2.2
- pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
- pull-3828 - Add changelog for node release 8.6