Skip to main content

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview​

This week, the Mithril team completed the support for an IVC follower aggregator joining the network at any time, the circuit verification key whitelist/revoke mechanism, the scaling tests of the SNARK infrastructure to full security parameters, the finalization of the Mithril SNARK Book, and the activation of the dual genesis keys. They also completed renaming the circuit test assets and production keys, and identifying the circuit verification keys by their transcript representation. They worked on adding a Proof of Bound Possession for the SNARK verification keys, renaming the future_snark feature to snark, hardening the SNARK primitives and adding the missing conversion and error-path tests in ivc_halo2_snark.

The team completed leveraging the certificate chain cache with the EarlyStopVerification mode, adding a file-system backend for the cache and enabling it in the client CLI. They also started adding an IndexedDB backend for the cache in the WASM client and documenting the certificate chain cache.

Finally, they completed the upgrade to Cardano node 11.1 and kept investigating the blocks and transactions verification failure on the testing-preview network.

Low level overview​

Features​

  • Completed the issue Support an IVC follower aggregator joining the network at any time #3446
  • Completed the issue Implement circuit verification key whitelist/revoke mechanism #3148
  • Completed the issue Test scaling SNARK infrastructure to full security parameters #3153
  • Completed the issue Finalize the Mithril SNARK Book #3383
  • Completed the issue Activate dual genesis keys #3388
  • Completed the issue Rename the .bin circuit test assets and production keys #3552
  • Completed the issue Identify circuit verification keys by transcript representation instead of bytes #3556
  • Completed the issue Leverage the certificate chain cache with the EarlyStopVerification mode #3521
  • Completed the issue Add a file-system backend for the certificate chain cache #3522
  • Completed the issue Enable the certificate chain cache in the client CLI #3523
  • Worked on the issue Add a SNARK verification key Proof of Bound Possession #3537
  • Worked on the issue Rename future_snark feature to snark #2814
  • Worked on the issue SNARK primitives hardening #3557
  • Worked on the issue Add the missing conversion and error-path tests in ivc_halo2_snark #3470
  • Worked on the issue Add an IndexedDB backend for the certificate chain cache in the WASM client #3524
  • Worked on the issue Document the certificate chain cache #3525

Protocol maintenance​

  • Completed the issue Upgrade to Cardano 11.1 #3346
  • Worked on the issue Blocks and transaction verification fails on testing-preview #3526

Performance & Tracing Update

· 6 min read
Michael Karg
Performance and Tracing Team Lead

High level summary​

  • Benchmarking: Node 11.1.1 release benchmarks; LSM-trees (on-disk LedgerDB) benchmarks.
  • Development: Benchmarking workload submission full Dijkstra support - as well as on-disk serialization for db-synthesizer.
  • Tracing: Full switch to Hermod Tracing in planning; Alert manager for cardano-tracer is ongoing work; Native span tracing for Hermod.
  • Infrastructure: cardano-smartbench: A detached performance workbench - feasibility.
  • Leios: On-disk LedgerDB tx validation benchmark shipped to SPOs. First Leios tests on the performance cluster, including tooling updates.
  • Organizational: Performance & Tracing Team Meetup in Helsinki.

Low level overview​

Benchmarking​

The P&T team has performed, analyzed and published benchmarks for the Node 11.1.1 release. While the CPU usage improvement persists, and the memory increase is smaller than with 11.1.0, it's still measurable. It was mentioned as a known issue for this release. It seems to correlate with cyclic events such as ledger snapshotting, and while it has been observed on Mainnet as well, it did not represent an operational risk to the network.

Furthermore, we re-ran the 11.0 baseline, as network latencies between cluster machines had changed since May 2026 and were confounding network-related performance metrics. We additionally ran benchmarks with a new Ledger feature that loads huge datasets injected into ledger state in a streaming fashion, and we could validate it works as intended. This, however, is only relevant for testnets; the feature is blocked for Mainnet, as no data may be injected at all.

Last but not least, for Node 11.1 we repeated benchmarks of on-disk LedgerDB stressing the UTxO set - both with and without artificial memory constraints on the process. Those benchmarks are currently under analysis.

Development​

tx-generator, the workload-submission tool behind our benchmarking profiles, gained two new pieces of functionality (cardano-node PR#6695). It can now dump its generated transaction stream to disk - as plain text or as raw CBOR - instead of always submitting it live against a running cluster, so other tools can inspect or validate a workload without needing a full cluster to generate against. At the same time, its era-specific code paths were extended to cover the Dijkstra era, so we can generate and submit Dijkstra-era transactions for benchmarking purposes.

The longer-term goal of writing an entire transaction workload to disk is having db-synthesizer as a consumer. It enables creation of fully valid Praos or Leios chain fragments in a short time - and those chain fragments will exhibit all the properties defined in our benchmarking profiles.

Tracing​

In one of the upcoming node versions after the Dijkstra hard fork, we plan on replacing the new tracing system (trace-dispatcher) with Hermod Tracing. While Hermod currently is at feature and API parity with trace-dispatcher, it makes a sensible split between API and core packages, allowing for improved development in the future. But more importantly, it will enable some new tracing system features which have been deferred up to now, such as live reconfiguration of trace filter rules, and single-source definition of tracers for all purposes - consistency checks, auto-documentation and of course trace emission. We're currently integrating Hermod into the Haskell node component stack and preparing for a smooth transition when the time comes.

The implementation of the monitoring/alarm system is progressing (cardano-node PR#6664). Currently we're working on a robust test harness; a feature like this requires extremely rigorous coverage. Additionally, we're working on interfacing the system with escalation channels, such as pagers, pager app APIs, email and so forth.

Native support for nested spans in Hermod, which we've mentioned as exploratory work in earlier posts, has taken its first concrete shape: a new module implements Loki-style begin/end span tracing, pairing an opening and a closing trace message under a shared span identifier (hermod-tracing PR#19). The PR is still fresh and under review.

Infrastructure​

We've begun a feasibility study for detaching our performance workbench (the benchmarking automation framework) from the main Haskell node project - working title cardano-smartbench. It would let the workbench pick custom inputs, tooling and analysis targets rather than being tied to the Haskell node project's own layout. This addresses issues for benchmarking branches that have diverged a long distance from the project master (such as Leios), and would also generalize the workbench to work with clients other than the Haskell node in the future. The current challenge is keeping the existing CI guarantees alive on the Haskell node's master branch, without risking all downstream tooling silently going out of sync. As it's a feasibility study, there's no PR for it (yet).

Leios​

The transaction validation time benchmark has been turned into a self-contained, distributable executable and shipped to SPOs. It can run on their own hardware without any nix or Haskell/cabal stack. We're specifically interested in the on-disk measurements for LedgerDB on a wide variety of configurations - as being I/O bound (vs. CPU and RAM only) implies being dependent on a much larger array of parameters, such as kernel version, SSD hardware and connection, file system choice and even mount options.

We're currently testing our benchmarking automation on the performance cluster with the Leios prototype. While the numbers obtained from that won't be representative, we're preparing for the Leios Release Candidate: our infrastructure needs to support everything Leios adds - from config values and protocol parameters to understanding Leios-specific timestamped events for performance analysis.

Organizational​

This month, the Performance & Tracing team had a three-day in-person meetup in Helsinki. We had excellent discussions on focus shifts that come with our transition to ICAN Group. Additionally, we ideated means of making the team's delivery more accessible to the wider Cardano community, especially non-technical people - as our direct audience is no longer only IOG engineers. Thank you to everyone who contributed their views and ideas!

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview​

This week, the Mithril team completed the implementation of the Relation trait for the IVC circuit and the removal of the HTTP client and TLS features from STM. They continued implementing the circuit verification key whitelist/revoke mechanism, supporting an IVC follower aggregator joining the network at any time, and adding a Proof of Bound Possession for the SNARK verification keys. They also started activating the dual genesis keys and the future_snark feature by default, testing the scaling of the SNARK infrastructure to full security parameters, and finalizing the Mithril SNARK Book.

The team completed the certificate chain cache committed after chain verification in the client library and started leveraging it with the EarlyStopVerification mode.

Finally, they released the new 2630.1-hotfix distribution which fixes a stack overflow in the aggregator and signer on the release-preprod network when decoding a block, kept upgrading to Cardano node 11.1, and kept investigating the blocks and transactions verification failure on the testing-preview network.

Low level overview​

Features​

  • Completed the issue Implement Relation trait for the IVC circuit #3428
  • Completed the issue Remove the HTTP client and TLS features from STM #3558
  • Completed the issue Add a certificate chain cache committed after chain verification in the client library #3520
  • Worked on the issue Implement circuit verification key whitelist/revoke mechanism #3148
  • Worked on the issue Support an IVC follower aggregator joining the network at any time #3446
  • Worked on the issue Add a SNARK verification key Proof of Bound Possession #3537
  • Worked on the issue Activate dual genesis keys #3388
  • Worked on the issue Activate future_snark feature by default #2814
  • Worked on the issue Test scaling SNARK infrastructure to full security parameters #3153
  • Worked on the issue Finalize the Mithril SNARK Book #3383
  • Worked on the issue Leverage the certificate chain cache with the EarlyStopVerification mode #3521

Protocol maintenance​

  • Released the new distribution 2630.1-hotfix
  • Published a dev blog post Distribution 2630.1 hotfix is now available
  • Completed the issue Stack overflow in aggregator and signer on release-preprod when decoding a block #3549
  • Worked on the issue Upgrade to Cardano 11.1 #3346
  • Worked on the issue Blocks and transaction verification fails on testing-preview #3526

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary​

The Plutus team has delivered a number of September milestones, and is putting the finishing touches on the remaining ones.

A new with-crypto cabal flag makes it possible to build Plinth and Plutus without the system crypto C libraries. We've also further improved the usability of the certifier in the uplc cli tool.

Work in progress includes the cost models for keepPolicies and dropPolicies (CIP-0168), and a CIP for removing the scope check during script deserialization.

Key Pull Requests Merged​

Pull Requests In Progress​

Consensus Team Update

· 3 min read
Damian Nadales
Consensus Team Lead

High level summary​

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Split the Leios database into two files, one for data a node can still roll back, and one for data that is settled. A certified Endorser Block moves from the first file to the second in the background. An operator can put the two files on different disks, and give the busier file the faster disk. The same change adds garbage collection in small steps: one thread marks the rows a node no longer needs, and a second thread deletes them in paced batches, so the deletion does not hold up the rest of the node (#2261, for ouroboros-leios#969).
    • Adapted the prototype node to the two file layout, and published the size of each part as a node metric (cardano-node#6656). Added a dashboard that shows how many Endorser Blocks and transactions sit in each part, and updated the devnet configuration to match (ouroboros-leios#1054).
    • db-synthesizer now builds a Leios chain instead of a chain of empty blocks. It fills each block with transactions, puts what does not fit into an Endorser Block, and votes on each announced Endorser Block so that a later block can certify it. It also stores each Endorser Block it forges, which an earlier version dropped. The other database tools now have a Leios chain to work on (#2241, #2283).
    • db-truncater now handles a Leios chain. After it cuts the chain back to a chosen slot, it cuts the Leios database back to the same slot, drops the transactions that no Endorser Block refers to, and shrinks the file (#2262, for ouroboros-leios#1023).
    • Moved block forging out of the node kernel into a module of its own, and split it into named steps. The behaviour does not change. The new shape makes the forging path easier to follow, easier to instrument, and easier to reuse from the database tools (#2281).
  • Maintenance and support (Treasury Funding Initiative 17: Maintenance and Support):
    • Dropped support for node-to-client protocol versions below v23. Version 23 shipped with node 10.7.0 in March 2026, and every client we checked already offers it. The older versions kept legacy code alive in the consensus layer (#2265).