Skip to main content

Mithril Team Update

· 4 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed the documentation of the recursive and non-recursive SNARK aggregation as well as the concatenation aggregation on the documentation website. They also completed the recovery of the ignored IVC prover input preparation tests and the split of the prove_all_scenarios monolith into separated tests. They continued adding the missing IVC off-circuit checks and the behavior tests for the IVC wiring, harmonizing the recursive and non-recursive SNARK implementations in STM, and started supporting an IVC follower aggregator joining the network at any time as well as the circuit verification key whitelist/revoke mechanism.

The team completed the new chain adapter that reads the on-chain configuration parameters, the adaptation of the legacy diffusion in the aggregator, the removal of these parameters from the aggregator configuration, the enhancements of the protocol configuration markers, and the infrastructure adaptation. They also completed the deterministic immutable compressed archives and the IPFS file uploader of the aggregator, continued implementing the IPFS file downloader of the client, fixed the deployment of the Cardano blocks and transactions signing configuration.

Finally, they kept upgrading to Cardano node 11.1 and updating the ed25519-dalek dependency.

Low level overview

Features

  • Completed the issue Add documentation for recursive SNARK #3144
  • Completed the issue Add documentation for non recursive SNARK #3155
  • Completed the issue Add documentation for concatenation aggregation #3487
  • Completed the issue Recover the ignored IVC prover input preparation tests #3466
  • Completed the issue Replace prove_all_scenarios monolith with separated tests #3468
  • Completed the issue Create new chain adapter to read on-chain configuration parameters #3393
  • Completed the issue Adapt legacy diffusion in aggregator with on-chain configuration parameters #3394
  • Completed the issue Remove the protocol configuration parameters in aggregator configuration #3395
  • Completed the issue Enhancements protocol configuration markers #3503
  • Completed the issue Create deterministic immutable compressed archives #3435
  • Completed the issue Implement an IpfsFileUploader in the aggregator #3457
  • Worked on the issue Add missing IVC off-circuit checks #3381
  • Worked on the issue Add behavior tests for the IVC wiring #3465
  • Worked on the issue Harmonize the recursive and non-recursive SNARK implementations in STM #3421
  • Worked on the issue Support an IVC follower aggregator joining the network at any time #3446
  • Worked on the issue Implement circuit verification key whitelist/revoke mechanism #3148
  • Worked on the issue Implement an IpfsFileDownloader in the client #3459
  • Worked on the issue Adapt documentation for on-chain configuration parameters #3398

Protocol maintenance

  • Completed the issue Adapt infrastructure for on-chain configuration parameters - Phase 1 #3397
  • Completed on the issue Adapt infrastructure for on-chain configuration parameters - Phase 2 #3497
  • Completed the issue Cardano blocks and transactions signing configuration is not deployed #3499
  • Worked on the issue Upgrade to Cardano 11.1 #3346
  • Worked on the issue Update ed25519-dalek dependency #3471

Performance & Tracing Update

· 4 min read
Michael Karg
Performance and Tracing Team Lead

High level summary

  • Benchmarking: Node 11.1.0 release benchmarks.
  • Development: beacon benchmark: new metric capturing disk access time for UTxO lookup; replaced Cairo rendering with gnuplot to reduce bloat and increase portability.
  • Tracing: Alert manager feature for cardano-tracer now in implementation phase.
  • Leios: On-disk LedgerDB tx validation times benchmark delivered; distributable, self-contained benchmark package in the works.
  • Organizational: Decentralization of delivery: The entire Performance & Tracing team successfully moved from IOG to ICAN Group.

Low level overview

Benchmarking

The P&T team has performed and analyzed benchmarks, as well as pre-release bencharks, for the Node 11.1.0 release. While we did measure an increased resident set size, we also saw a clear reduction in process CPU usage. The memory increase has already prompted an investigation and changes, which will make their way into a 11.1.1 patch release.

Development

beacon's comparison and variance reports now break totalTime outliers down into ledger-tick and table-read cost, and commit to a single totalTime metric instead of quietly double-counting table-read time into it — table-read time being what actually captures UTxO lookup cost against the on-disk backing store (beacon PR#16, second of three parts split off from #13, still under review).

We've also dropped beacon's Cairo-based plotting backend entirely in favour of a small gnuplot wrapper (beacon PR#21). The old Chart/Chart-cairo dependency pulled in a full X11 client stack for a tool that only ever renders to PNG files; the switch shrinks the binary's shared-library footprint from 25 down to 5, and let us finally add macOS to CI.

Tracing

Following on from the alarm-system design work reported last time, we've moved into implementation (cardano-node PR#6664). The dispatch payload sent to alarm consumers now carries the source, rule ID, severity and a summary, instead of just the name of the consumer being notified; on the timeseries side, alarm rules are now backed by a small, pure, edge-triggered state machine — cycling through Inactive/Pending/Active states with configurable for/repeatEvery timing and a deterministic series key — while the evaluator thread and value decoder driving it are left for a follow-up PR.

Native support for nested spans in Hermod remains ongoing work, with no PR created yet.

Leios

The on-disk LedgerDB tx validation benchmark work mentioned in our last two posts has been delivered: beacon run can now force the LSM backend to genuinely exercise disk I/O via a new --lsm-no-cache flag, bypassing the OS page cache through O_DIRECT, with --mem-limit/--heap-limit cgroup caps as a fallback for older db-analyser builds; every run also now reports peak RSS, block I/O counts, and a true wall-clock totalTime alongside the previous mutator-only timing (beacon PR#12). Concrete measurements from this on-disk backend are being published under Leios issue#553, the original ask behind this benchmarking effort.

In parallel, we're packaging this benchmark into a self-contained, distributable executable that SPOs can run on their own hardware without nix or network access (beacon PR#22, based on #16). glue bundles glibc and its own curl/unzip, patches its own ELF interpreter at extraction time, and drives measurement, hardware profiling and report assembly through auditable shell scripts rather than Haskell. It's currently under review.

Organizational

As of this month, the entire Performance & Tracing team has moved from IOG to ICAN Group. The team has been warmly welcomed, and the move comes with a genuine sense of a fresh start — new structure, same people, same focus. Delivery on the Cardano Maintenance & Support proposal has continued without disruption throughout the transition; everything reported above was produced across the move.

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed the optimization of the SNARK test suite by extending the on-disk test cache to the recursive circuit test fixtures, consolidating the halo2_snark slow proof tests around shared and golden proofs, and consolidating the recursive circuit MockProver tests. They continued adding the missing IVC off-circuit checks and started recovering the ignored IVC prover input preparation tests, and started documenting the recursive and non-recursive SNARK aggregation as well as the concatenation aggregation on the documentation website.

The team also completed the adaptation of the end-to-end test for the on-chain configuration parameters and the runbook documenting them, and continued implementing the new chain adapter that reads these parameters and adapting the infrastructure. They continued working on the deterministic immutable compressed archives and on the IPFS file uploader of the aggregator.

Finally, the team continued upgrading to Cardano node v.11.1 and updating the ed25519-dalek dependency.

Low level overview

Features

  • Completed the issue Extend the on-disk test cache to the recursive circuit test fixtures #3462
  • Completed the issue Consolidate the halo2_snark slow proof tests around shared and golden proofs #3463
  • Completed the issue Consolidate the recursive circuit MockProver tests #3464
  • Completed the issue Adapt end-to-end test for on-chain configuration parameters #3396
  • Worked on the issue Add missing IVC off-circuit checks #3381
  • Worked on the issue Recover the ignored IVC prover input preparation tests #3466
  • Worked on the issue Create new chain adapter to read on-chain configuration parameters #3393
  • Worked on the issue Create deterministic immutable compressed archives #3435
  • Worked on the issue Implement an IpfsFileUploader in the aggregator #3457
  • Worked on the issue Add documentation for recursive SNARK #3144
  • Worked on the issue Add documentation for non recursive SNARK #3155
  • Worked on the issue Add documentation for concatenation aggregation #3487

Protocol maintenance

  • Completed the issue Create runbook for on-chain configuration parameters #3399
  • Completed the issue Fix admonitions in website and update Footer Discord info #3491
  • Worked on the issue Upgrade to Cardano 11.1 #3346
  • Worked on the issue Adapt infrastructure for on-chain configuration parameters #3397
  • Worked on the issue Update ed25519-dalek dependency #3471

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary

The Plutus team has published release 1.68.0.0, which includes the Plutus V4 ledger API types. Note that Plutus V4 remains under development, and these types may still change before Dijkstra.

Getting started with Plinth is now much easier: the new install script in plinth-template sets up a Plinth project with a single command, taking care of installing the required tooling. See the updated documentation for details.

Work on Plutus V4 language features continues. Casing on Data has been implemented: case on a Data.Constr value can now dispatch directly on the constructor tag, which, combined with the recently added dropList, yields a decent performance boost. We've also added the assetCount builtin (CIP-0168) along with its cost model, merged the cost model for multiIndexArray (CIP-0156), and continued formalizing builtins in the Agda metatheory.

We also continue to welcome feedback on CPS-0034 - Extending Plutus Core conformance testing.

Key Pull Requests Merged

Pull Requests In Progress

Consensus Team Update

· One min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Closed an attack on the way nodes announce Endorser Blocks. The attack made honest nodes disconnect from each other (#2179, for ouroboros-leios#1029).
    • db-analyser now reads Leios chains. The tool replays a chain and reports the cost to apply each block. The reports now cover the transactions of each certified Endorser Block, their total size, and the time to read them (#2181, for ouroboros-leios#1023).
  • Maintenance and support (Treasury Funding Initiative 17: Maintenance and Support):
    • Forward-ported the new snapshot interval and the mempool allocation fix from the 4.x release line to the main development branch. The 2026-08-11 update describes both changes (#2209, #2215).