Skip to main content

Ledger Team Update

· 5 min read
Alexey Kuleshevich
Ledger Team Software Engineer

High level summary

Besides some general improvements and necessary reorganization of testing code here is the list of high level initiatives that we've worked on the last period:

  • Preparation of cardano-node releases:

    We've been working hard on making sure upcoming releases are done in a timely manner. We've identified a couple of issues that needed to be resolved before we could declare cardano-node-10.6.2 a successful mainnet ready release and also discovered a few problems that needed to be taken care of in preparation for the upcoming cardano-node-10.7.0 release and the upcoming intra-era hard fork into protocol version 11. All, but one issue has been resolved. Once the last issue is taken care of, Ledger team will unblock the upcoming cardano-node-10.7.0 release.

  • CIP-118 - Nested Transactions:

    We've made progress on declaring some of the Ledger rules for sub-transactions and restructured the way we deal with UTxO update in the Ledger rules to accommodate support of sub-transactions.

  • CIP-159 - Account Address Enhancement - phase 1:

    Required renaming was done in order to reflect promotion of reward accounts to proper accounts. Also a new "balance intervals" field has been added to the transaction body.

  • CIP-165 - Canonical Ledger State:

    Some nice progress can be reported on implementation of Canonical Ledger State with 3 namespaces getting implemented. There are still many more namespaces to go, but this initial work defines the overall structure that will be adopted for the rest of the Ledger State namespaces.

Low level summary

Features

  • Preparation for cardano-node releases:

    • PR-5569 - Fixup ledger for next release
    • PR-5565 - Prevent decoding Version higher than 11
    • PR-5580 - Fix preservation of a DRep delegation bug
    • PR-5555 - Add Generic instances for ApplyTxError type family
    • PR-5516 - Improve snapshot creation performance
    • PR-5576 - Remove assertions and no longer needed StakePoolParams from SnapShot
    • PR-5545 - Fix laziness in map and mapWithKey for VMap
  • CIP-118 - Nested Transactions:

    • PR-5531 - SUBGOVCERT rule impementation
    • PR-5534 - SUBDELEG rule implementation
    • PR-5542 - SUBGOV implementation
    • PR-5557 - Update UTxOState in UTXO rule rather than UTXOS
  • CIP-159 - Account Address Enhancement - phase 1:

    • PR-5528 - Rename RewardAccount to AccountAddress
    • PR-5530 - Add Semigroup/Monoid for Withdrawals/DirectDeposits
    • PR-5546 - Add AccountBalanceIntervals to DijkstraEraTxBody
  • CIP-165 - Canonical Ledger State:

    • PR-5540 - Canonical Ledger State: introduce blocks/v0 namespace
    • PR-5570 - Implement gov/constitution/v0 namespace
    • PR-5548 - Introduce utxo/v0 namespace for canonical ledger state
    • PR-5552 - Introduce CanonicalCoin type
  • General maintenance and improvements

    • PR-5536 - Dijkstra:CDDL: Remove (un)registration certs
    • PR-5543 - Change Predicate failure with UTxO to NonEmptyMap
    • PR-5539 - Improving re exports

Testing

  • PR-5547 - Update state of Conway formal spec in the README
  • PR-5558 - Accomodate for costmlds change to a Map in the Ledger spec
  • PR-5505 - Added custom generator to address, enabled some Huddle tests
  • PR-5553 - Move Arbitrary instances to cardano-base
  • PR-5571 - Add Imp test to check failure of phase-1 when bootstrap addr + scripts

Infrastructure and releasing

  • PR-5550 - Fix sha256 of cardano-cls SRP stanza in cabal file
  • PR-5561 - Fix nix shell

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team focused on implementing new succinct proofs. The team worked on pre-aggregation SNARK primitives in the STM library, completed bridging between CPU and circuit implementations, and worked on lottery target pre-computation. They also continued to adapt the certificate chain for SNARK-friendliness and to implement signer authentication for SNARK verification keys.

Additionally, the team continued work on the new certification for Cardano blocks and transactions. This included implementing the prover, along with the proof routes in the aggregator REST API, and the diffusion of signing configuration.

Finally, they continued working on static builds for Mithril nodes, fixed some CI bugs, and implemented support for Cardano node v.10.6.2.

Low level overview

Features

  • Completed the issue Implement SNARK pre-aggregation primitives in STM library - Phase 1 #2792
  • Completed the issue Hash to curve CPU/circuit discrepancy for message signature in Schnorr signature #2993
  • Completed the issue Implement signable builder for Cardano Blocks and Transactions #2908
  • Completed the issue Implement signing configuration for Cardano Blocks and Transactions #2971
  • Worked on the issue Compute Lottery Target Value for SNARK #2974
  • Worked on the issue Implement SNARK pre-aggregation primitives in STM library - Phase 2 #2943
  • Worked on the issue Remove off-circuit module in Halo2 circuit #2945
  • Worked on the issue Prepare refactoring of SNARK circuit #2990
  • Worked on the issue Full review of recursive SNARK circuit prototype #2982
  • Worked on the issue Adapt certificate chain to support SNARK AVK #2811
  • Worked on the issue Support for authenticated signer registration for SNARK #2915
  • Worked on the issue Implement proof route for Cardano Blocks and Transactions in aggregator REST API #2988
  • Worked on the issue Implement new prover for Cardano Blocks and Transactions #2987
  • Worked on the issue Implement static build of Mithril nodes in CI #2989
  • Worked on the issue Integrate Mithril into the Cardano developer documentation website #3012

Protocol maintenance

  • Worked on the issue Upgrade to Cardano 10.6 #2790
  • Worked on the issue Fix snapshot-converter breaking change in 10.6.2 #3010
  • Worked on the issue Fix crates and npm packages publications GitHub workflows #2970
  • Worked on the issue Enhance protocol security page on website #2703

Network Team Update

· 2 min read
Marcin Szamotulski
Network Team Lead

Overview of sprint 107.

Cardano Node 10.5.4

We rolled out cardano-node-10.5.4 release.

Leios

PR / IssueStatus
Mux Leios Simulationmerged
Mux egress prioritisationin progress
Mux egress fairnessresolved

Ouroboros-Network

PR / IssueStatusNotes
StandardHash with NFData constraintmerged
Tracing Librariesmerged
[tx-submission robustness and testing enhancements][pr#5315]in review
RNG handling in SRV lookups for public root peersin reviewcontribution by Saviour Uzoukwu
cardano ping implemented with ouroboros-networkblocked

Documentation

Maintenance

DMQ-Node

PR / IssueStatus
SigSubmission v2in review
Integration with cardano-tracerin progress
[Set the correct magic field][pr#30]merged
[Churn test][#5303]in review

SRE Team Update

· 3 min read
John Lotoski
Service Reliability Engineer

High level summary

The SRE team continues work on Cardano environment improvements and general maintenance.

Some notable recent changes, updates or improvements include:

  • Cardano-node 10.5.4 has been released and 10.6.2 has been pre-released and deployed to all IOE release and pre-release environments.

  • New arm64 release artifacts and OCI images are now available with node 10.6.2 pre-release.

Repository Work -- Merged

Cardano-mainnet

cardano-mainnet PR#41:

  • Sets cardano-node release to 10.5.4. The private IOG pools, IOGP{2..4} have been retired. All private relays have been stopped as well as the retired block forging pool machines. Includes various improvements with cardano-parts release v2026-02-12. See the PR description for additional details.

Cardano-parts

cardano-parts release v2026-02-12:

  • This release updates cardano-node release to 10.5.4, cardano-node pre-release to 10.6.2, cardano-db-sync pre-release to 13.7.0.0 and cardano-faucet to 10.6. Dijkstra network support has been added to process-compose, recipes and scripts. The demo and demo-ng scripts have been substantially improved for Protocol Version 11 intra-era hard fork support, Constitutional Committee key voting, DRep registration, and constitution adoption. Other miscellaneous improvements and fixes are detailed in the PR description.

Cardano-playground

cardano-playground PR#53:

  • Sets cardano-node release to 10.5.4, cardano-node pre-release to 10.6.2, cardano-db-sync pre-release to 13.7.0.0 and cardano-faucet to 10.6. Dijkstra network support has been added to recipes and scripts. The demo and demo-ng scripts have been substantially improved for Protocol Version 11 intra-era hard fork support, Constitutional Committee key voting, DRep registration, and constitution adoption. Includes various improvements with cardano-parts release v2026-02-12. See the PR description for additional details.

cardano-playground PR#54:

  • Upgrades the cardano environment switching for recipes and scripts to a sourcing method instead of the prior GDB parent shell var modification approach which has become more fragile over time.

Cardano-node

cardano-node PR#6424:

  • Bumps cardano-node cabal version to 10.6.2
  • Bumps iohkNix for 10.6.2 configuration updates (see iohk-nix PR#609 for details)
  • Updates CI files for configuration changed in 10.6.2

cardano-node PR#6425:

  • Bumps iohk-nix for 10.5.4 preview checkpoint file, peer snapshot and ledger updates
  • Adjust CI files

Iohk-nix

iohk-nix PR#609:

  • Adds a preview checkpoint file
  • Adds mempool timeout docs and bumps MinNodeVersion to 10.6.2
  • Adds dijkstra network config
  • Updates per environment peer-snapshot file and useLedgerAfterSlot
  • Fixes mkConfigHtml function html spacing when using multi-line strings
  • Sets mkConfigHtml to use new default tracing for the genesis file inclusion check
  • Switches Dijkstra network to GenesisMode w/ peer-snapshot as default

Repository Work In Progress -- PRs and Branches

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Continued work on Node 10.7 integration (Treasury Funding Initiative 17: Maintenance and Support):
    • Integrated network packages up to ouroboros-network-0.22.6 (#1819, #1865).
    • Integrated latest ledger changes (#1762).
    • Integrated kes-agent-1.1 (#1819) (Treasury Funding Initiative 9: KES Agent).
  • Node improvements (Treasury Funding Initiative 17: Maintenance and Support):
    • Improved mempool behavior for local clients:
      • Downgraded hard timeouts to soft timeouts, improving user experience for wallets and other local client integrations (#1856, #1857, #1858).
      • Made it easier for downstream tracers to scrutinize mempool rejection details (#1847).
      • Enhanced observability by exposing the reason for chain switches in the ChainSel tracer (#1826).
    • Added support for the new GetDRepDelegations ledger state query in NodeToClientV_23 (#1794).
    • Fixed an exception due to a mix-up of resources in the V2 LedgerDB (#1842).
    • Minor: code cleanup (#1854).
    • Added documentation for the Consensus-Ledger interaction (#1830).
  • Continued Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation, MS4.6):
    • Refactored to use EbHash instead of EbId for cleaner design (#1859).
    • Simplified to monomorphic types for more rapid iteration (#1846).
    • Implemented in-memory LeiosDb for ThreadNet tests (#1837).