Skip to main content

· One min read
Marcin Szamotulski

Overview of sprints 89, 90

We released the ouroboros-network-0.21.2.0 version, which was adopted by cardano-node-10.5.

We created integration branches for ouroboros-network:cardano-diffusion with ouroboros-consensus, ekg-forward and cardano-node repositories (all called coot/cardano-diffusion-integration. We merged cardano-diffusion: integration changes to ouroboros-network.

After the release of QuickCheck-2.16, which includes one of our contributions (Added Every and Some monoid, we removed dependency on quickcheck-monoids and deprecated its API, #5142.

We merged the following pull requests:

We also worked on improving our CI (Hydra) experience. In the short term, we decided not to run computationally expensive simulations on {aarch64,x86_64}-darwin architectures. These simulations are platform independent, and they quite often timed out due to not enough CPU bandwidth, see #5145

Detailed overview

For a more detailed overview, please take a look at the sprint boards:

· 3 min read
Alexey Kuleshevich

High level summary

Unfortunately, due to the ZuriHac conference, we ended up skipping the Ledger update for the last period, therefore this update contains our accomplishments over the period of four weeks.

Extensive investigation into current CDDL specification and efforts of improving our testing tools lead to discovery and fixes of numerous bugs in CDDL specification dating back all the way to the Byron era. We have also improved readability of Ledger CDDL specification through enhancements to our CDDL generation tool. We have further tackled a whole bunch of tech debt and introduced performance improvements. Thanks to dropping support for ghc-8.10 we were able to add some safety improvements as well, that utilize features of the newer compiler.

Besides improvements to the existing code we have started preparation for an upcoming intra-era hard fork, which is planned to happen some time later this year and the new Dijkstra era that will happen no earlier than next year. We have fixed one more bug in preparation for the intra-era hardfork and started preliminary work for Nested Transactions.

Low level summary

Features

  • PR-4996 - CDDL improvements
  • PR-5073 - CDDL fixes
  • PR-5056 - Reinstate Annotator instances to main libs
  • PR-5079 - Fix RequiresNetworkMagic encoding
  • PR-5038 - Remove MemoBytes from ShelleyTx
  • PR-5085 - Also make Conway's pool metadata_hash be just bytes
  • PR-5090 - Renamed AlonzoTx fields
  • PR-5086 - Protocol version upper bound correction
  • PR-5080 - Remove MissingRequiredSigners
  • PR-5089 - Move era definitions to core:internal
  • PR-5030 - Added Dijkstra era
  • PR-5100 - Untaint era definitions, while preserving the safety warning.
  • PR-5109 - Add PParamUpdate minPoolCost to Shelley/Allegra/Mary CDDL
  • PR-5106 - Introduce KeyValuePairs for easier ToJSON deriving
  • PR-5104 - Dijkstra Era Transition functionality
  • PR-5099 - Fix COMPLETE pragmas for TxCert and NativeScript
  • PR-5116 - Simplify ToJSON instance for TransitionConfig
  • PR-5091 - Move unelected CC votes check to GOV
  • PR-5127 - Pure version of plutusDebug
  • PR-5122 - Memoize block body hash computation
  • PR-5125 - Faster upgradeTxOut for alonzo, babbage and conway

Testing

  • PR-4966 - Remove Pretty from cardano-ledger-test
  • PR-5061 - constrained-generators: Simplify HasSpec instance for Bool and move more things to NumSpec
  • PR-5083 - Remove old version of constrained generators
  • PR-5082 - Add doctests to CI
  • PR-5078 - Fix typos, formatting, and broken references in the shelley-ma formal spec PDF
  • PR-5102 - Add an imp test for checking deposit collection and refunds
  • PR-5118 - Fix stake comparison test
  • PR-5088 - Move upgrade functions for tx, body, auxData and wits to testlib
  • PR-5117 - constrained-generators: Separate generation and internal testing out of common modules

Infrastructure and releasing

  • PR-5074 - Bump .git-blame-ignore-revs
  • PR-5081 - Add script for setting up direnv
  • PR-5092 - Fix hackage nix in flake
  • PR-5110 - Upgrade deprecated Sphinx config option in doc/
  • PR-5107 - doctest in nix develop
  • PR-5112 - Remove ghcid related files
  • PR-5114 - cabal.project: Update index-states and drop un-needed SRPs
  • PR-5113 - Bump requests from 2.32.3 to 2.32.4 in /doc

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the 2524.0 distribution. This version supports Cardano node v.10.4.1 and introduces a new Mithril client CLI command for converting UTXO-HD ledger state snapshots. It also includes various bug fixes and improvements.

The team completed the first phase of the switch to binary encodings and continued working on the second phase of the standard library refactoring. They also implemented a new command in the client CLI to verify an existing Cardano database using Mithril. Additionally, they worked on implementing the publisher and consumer for the DMQ network, using the n2c local message submission and n2c local message notification mini-protocols from the Pallas library.

Finally, they enhanced the ledger state snapshot converter in the client CLI and continued refactoring the STM cryptographic library.

Low level overview

  • Released the new distribution 2524.0
  • Published a dev blog post about the Switch to Cardano database incremental certification
  • Published a dev blog post about the UTxO-HD ledger state snapshot converter in the client CLI
  • Published a dev blog post about the Distribution 2424 availability
  • Completed the issue Release 2524 distribution #2488
  • Completed the issue Switch messages encoding to binary hex #2536
  • Completed the issue Loose enforcement of OpenAPI compatibility #2535
  • Completed the issue Verify an existing Cardano database with client CLI #2537
  • Worked on the issue Implement a publisher with the n2c Local Message Submission mini-protocol with Pallas #2539
  • Worked on the issue Implement a consumer with the n2c Local Message Notification mini-protocol with Pallas #2540
  • Worked on the issue Split mithril-common crate - Phase 2 #2392
  • Worked on the issue Split Docker client download and snapshot convert in manual client test in CI #2578
  • Worked on the issue Enhance ledger state snapshot converter command in client CLI #2571
  • Worked on the issue Re-organize STM library structure #2369

· One min read
Noon van der Silk

High-level summary

We finished the final important security check for logic aroud deposits, and have implemented a selection of UX/usability improvements around logging and errors and informative APIs for the head state. We will aim to release a new vresion soon, and fix some other small bugs. We continue supporting the glacier drop.

What did the team achieve?

  • Finished the final piece on deposit logic checks #1978
  • Improved UX for networking misconfigurations #2026
  • Implemented event-log rotation #1581
  • Implemented API query for head status #1957
  • New observer API in the hydra-explorer #47
  • Progress on simplifying UX around hydra scripts #1441
  • Started planning the roadmap for Hydra in 2025-2026
  • Continued to support the glacier drop

What's next?

  • Release version 0.22.0!
  • Fix bug where head state as erroneous spendableUTxO #2037
  • Fix peers with different persistence causing hydra-node to crash #1937
  • Continue working on improving etcd UX #2054
  • Merging the simplified approach to finding the hydra scripts #1441
  • Better UX around etcd errors #1937
  • Continue to focus on supporting the glacier drop

· One min read
Damian Nadales

High level summary

  • Posed various clarifying "low-level" questions to the rest of the Leios Team after catching up on the Leios protocol and ledger designs. For the Consensus Team, the next step is to add transactions to the Haskell Leios simulator.
  • Fixed Ledger CDDLs (#5085, #5109).
  • Fixed encoding of WithOrigin in the TPraos ledger state snapshot (#1535).
  • Implemented a cddl validator in Cuddle (#68) and released cuddle 0.5.0.0.
  • Prevented a race condition when snapshotting LedgerDB.V2 (#1555).
  • Assessed the proposed VRF tiebreaker change (#1548). An analysis of the effects of using the leader VRF as the tiebreak VRF can be found here. We encourage community members who wish to discuss this change to join our next Technical Working Group meeting on Thursday, June 19, at 14:30 UTC.