-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Ledger team update for 2025-01-15 (#525)
- Loading branch information
Showing
1 changed file
with
132 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
--- | ||
title: Ledger Team Update | ||
slug: 2025-01-15-ledger | ||
authors: lehins | ||
tags: [ledger] | ||
hide_table_of_contents: false | ||
--- | ||
|
||
## High level summary | ||
|
||
Due to the holiday season this time around the Ledger report will be from a period of 6 weeks | ||
instead of the usual 2 weeks. That being said, this is also the time when everyone goes on | ||
vacation. Therefore the report is larger than usual, but not as big as if two periods of reporting | ||
were skipped at a usual time. | ||
|
||
Most of the effort was spent on polishing up some of the Conway features before the upcoming Plomin | ||
hard fork that is scheduled to happen some time in January, as well as continued testing of the | ||
Conway features in order to improve our confidence in the upcoming hard fork. Because of this effort | ||
we nailed a couple of serious bugs, fixes for which are included in the latest release, which is why | ||
an upgrade for all SPOs to the newest version of `cardano-node-10.1.4` is highly advisable. | ||
|
||
Another big allocation of effort was towards tackling some of the technical debt accrued over the years. | ||
|
||
The most significant change by far in this report is the removal of crypto parameterization from | ||
every era definition in Ledger. This change was not only a huge simplification for the Ledger | ||
codebase, but it will be just as big of a simplification for all of the downstream users of | ||
Ledger. Most importantly, this change will finally allow us to switch to the newer version of the | ||
GHC compiler, because it addresses the performance regression that the newer compiler version was | ||
susceptible to. | ||
|
||
One more major accomplishment that we can share is a drastic change to how serialization of UTxO | ||
happens in the ledger state. This change is planned to solve a long standing problem with blocks | ||
being missed due to the garbage collector kicking in at the time when the ledger snapshot was being | ||
created. Moreover this change will have a significant positive impact on UTxOHD performance when it | ||
will finally be released. | ||
|
||
Another big milestone, with respect to tackling technical debt is a release of our cryptographic | ||
library, which was undergoing some major changes throughout the last couple of years. It was finally | ||
released and integrated into Ledger with all of the other downstream components set to follow. | ||
|
||
We can also finally conclude our work on defining CDDL specification in Haskell as is it is now | ||
completely generated from a Haskell definition for all of the eras. Thanks to this effort we not | ||
only have a better confidence in the accuracy of our CDDL specification, due to extra type checking | ||
and testing we now get thanks to Haskell, but it also reduces duplication and complexity that usedq | ||
to stem from manual serialization specification definition for every Ledger era. | ||
|
||
|
||
## Low level summary | ||
|
||
### Features | ||
|
||
* [pull-4778] - Huddle for Alonzo | ||
* [pull-4790] - Add functions to convert hashes to and from `VRFVerKeyHash` | ||
* [pull-4785] - CDDL:babbage: Switch to using Huddle/Cuddle | ||
* [pull-4792] - Refactor Conway CDDL to reuse Babbage CDDL | ||
* [pull-4776] - Create CLI for `plutus-debug` | ||
* [pull-4788] - Get rid of crypto parametrization | ||
* [pull-4800] - Move Crypto class to `cardano-protocol-tpraos` | ||
* [pull-4810] - Deprecate `AuxiliaryDataHash` | ||
* [pull-4813] - Add a check to `MEMPOOL` rule that prevents unelected CC from voting | ||
* [pull-4828] - Fix cddl for `update_committee` cold credential | ||
* [pull-4831] - Cleanup pointer serialization | ||
* [pull-4811] - Integration of MemPack | ||
|
||
### Testing | ||
|
||
* [pull-4783] - Fixed the certStateSpec | ||
* [pull-4780] - Fix issues that prevent basic `sumbitTx` from passing conformance | ||
* [pull-4766] - Use non-zero costmodels in Imp tests | ||
* [pull-4791] - Move the list of predicate failures inside `OpaqueErrorString` | ||
* [pull-4796] - Made it possible to use Imp logging in the conformance hook | ||
* [pull-4740] - Constrained generators for `EPOCH` rule | ||
* [pull-4732] - Tools for constrained generation of types that need witnessing | ||
* [pull-4812] - Enumerate individual conway tests in conformance `Imp` | ||
* [pull-4801] - Updated `SpecTranslate` instance of `AlonzoScript`, debug info improvements | ||
* [pull-4817] - Included the hash in plutus script translation | ||
* [pull-4821] - Enable Imp conformance for DELEG | ||
* [pull-4822] - Improve error handling in constrained `genFromSpec` | ||
* [pull-4819] - Removed hash size proofs | ||
|
||
### Infrastructure and releasing | ||
|
||
* [pull-4787] - Use cabal-gild to format cabal files | ||
* [pull-4793] - Fix bounds on `quichckeck-instances` and `cardano-crypto-class` | ||
* [pull-4795] - Update haskellNix and CHaP and upgrade ghc-9.8.2 to 9.8.4 | ||
* [pull-4699] - Upgrade cardano-base dependency | ||
* [pull-4803] - Add missing version bump in `cardano-ledger-shelley-ma-test` | ||
* [pull-4805] - Add missing version bump in `cardano-ledger-alonzo-test` | ||
* [pull-4809] - Fix formal-ledger-specifications SRP check in ci | ||
* [pull-4816] - Backport release `cardano-ledger-conway-1.18.1.0` | ||
* [pull-4815] - Backport release `cardano-ledger-conway-1.17.4.0` | ||
* [pull-4824] - Pin ghc version in gen-hie CI job | ||
* [pull-4825] - Bump jinja2 from 3.1.4 to 3.1.5 in /doc | ||
* [pull-4833] - cabal.project: Update index-states | ||
|
||
[pull-4783]: https://github.com/IntersectMBO/cardano-ledger/pull/4783 | ||
[pull-4780]: https://github.com/IntersectMBO/cardano-ledger/pull/4780 | ||
[pull-4766]: https://github.com/IntersectMBO/cardano-ledger/pull/4766 | ||
[pull-4778]: https://github.com/IntersectMBO/cardano-ledger/pull/4778 | ||
[pull-4790]: https://github.com/IntersectMBO/cardano-ledger/pull/4790 | ||
[pull-4787]: https://github.com/IntersectMBO/cardano-ledger/pull/4787 | ||
[pull-4793]: https://github.com/IntersectMBO/cardano-ledger/pull/4793 | ||
[pull-4795]: https://github.com/IntersectMBO/cardano-ledger/pull/4795 | ||
[pull-4785]: https://github.com/IntersectMBO/cardano-ledger/pull/4785 | ||
[pull-4792]: https://github.com/IntersectMBO/cardano-ledger/pull/4792 | ||
[pull-4791]: https://github.com/IntersectMBO/cardano-ledger/pull/4791 | ||
[pull-4776]: https://github.com/IntersectMBO/cardano-ledger/pull/4776 | ||
[pull-4699]: https://github.com/IntersectMBO/cardano-ledger/pull/4699 | ||
[pull-4788]: https://github.com/IntersectMBO/cardano-ledger/pull/4788 | ||
[pull-4796]: https://github.com/IntersectMBO/cardano-ledger/pull/4796 | ||
[pull-4740]: https://github.com/IntersectMBO/cardano-ledger/pull/4740 | ||
[pull-4803]: https://github.com/IntersectMBO/cardano-ledger/pull/4803 | ||
[pull-4805]: https://github.com/IntersectMBO/cardano-ledger/pull/4805 | ||
[pull-4732]: https://github.com/IntersectMBO/cardano-ledger/pull/4732 | ||
[pull-4809]: https://github.com/IntersectMBO/cardano-ledger/pull/4809 | ||
[pull-4800]: https://github.com/IntersectMBO/cardano-ledger/pull/4800 | ||
[pull-4812]: https://github.com/IntersectMBO/cardano-ledger/pull/4812 | ||
[pull-4810]: https://github.com/IntersectMBO/cardano-ledger/pull/4810 | ||
[pull-4813]: https://github.com/IntersectMBO/cardano-ledger/pull/4813 | ||
[pull-4816]: https://github.com/IntersectMBO/cardano-ledger/pull/4816 | ||
[pull-4815]: https://github.com/IntersectMBO/cardano-ledger/pull/4815 | ||
[pull-4801]: https://github.com/IntersectMBO/cardano-ledger/pull/4801 | ||
[pull-4817]: https://github.com/IntersectMBO/cardano-ledger/pull/4817 | ||
[pull-4824]: https://github.com/IntersectMBO/cardano-ledger/pull/4824 | ||
[pull-4825]: https://github.com/IntersectMBO/cardano-ledger/pull/4825 | ||
[pull-4821]: https://github.com/IntersectMBO/cardano-ledger/pull/4821 | ||
[pull-4822]: https://github.com/IntersectMBO/cardano-ledger/pull/4822 | ||
[pull-4828]: https://github.com/IntersectMBO/cardano-ledger/pull/4828 | ||
[pull-4831]: https://github.com/IntersectMBO/cardano-ledger/pull/4831 | ||
[pull-4833]: https://github.com/IntersectMBO/cardano-ledger/pull/4833 | ||
[pull-4811]: https://github.com/IntersectMBO/cardano-ledger/pull/4811 | ||
[pull-4819]: https://github.com/IntersectMBO/cardano-ledger/pull/4819 |