From aa53e4e59e139df183d4863211d2ea347afadf54 Mon Sep 17 00:00:00 2001 From: Alexey Kuleshevich Date: Fri, 17 Jan 2025 13:47:34 -0700 Subject: [PATCH] Add Ledger team update for 2025-01-15 (#525) --- blog/2025-01-15-ledger.md | 132 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 blog/2025-01-15-ledger.md diff --git a/blog/2025-01-15-ledger.md b/blog/2025-01-15-ledger.md new file mode 100644 index 0000000000..362a877b78 --- /dev/null +++ b/blog/2025-01-15-ledger.md @@ -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