Skip to main content

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary

The Plutus team has recently made a number of significant improvements to the UPLC executable, including:

  • support for hex-encoded scripts as input (#7655).
  • support for blueprint JSON as input, with the ability to optimize all scripts it contains (#7685).
  • the ability to certify optimizations and generate a certifier report for each optimized validator (#7692).
  • a number of flags to give users control over optimization behavior (#7682).
  • allow evaluating a script using user-supplied input before and after optimization (#7695).

The UPLC executable is included with every Plutus release. While it supports a range of use cases, its most immediately useful feature for most developers is script optimization. Preliminary testing suggests that applying these optimizations to recent mainnet scripts yields, on average, a 10% reduction in execution cost and a 2% reduction in script size.

We are currently working on user documentation for the UPLC executable.

Low level summary

Key Pull Requests Merged

Consensus Team Update

· 3 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation):
    • Fixed an "impossible!" crash in the Leios prototype's fetch decision logic (#1996).
    • Added cumulative transaction bytes to the ledger state and exposed them as a Prometheus metric, giving operators a direct measure of throughput on the proto-devnet (#1988, cardano-node#6536).
    • Added a confirmed-transaction throughput panel to the proto-devnet dashboard (ouroboros-leios#859).
    • Hardened the prototype's test suite around endorser-block inclusion, making it easier to extend to upcoming features such as voting (#1971).
    • Started aligning the prototype with the original Leios design by migrating the endorser-block announcement and certification flag from the Ledger Block into the Praos Header (ouroboros-leios#837).
    • Investigating a performance bug observed during the March demo, where the time between forging and storing an endorser block can stretch to minutes and disrupt protocol operation (ouroboros-leios#844).
    • Nick Frisby shared a work-in-progress snapshot of his SQLite latency investigation from March, which informs Leios-related storage work (ouroboros-leios#863).
    • Posted the logbook update from the 2026-04-09 Consensus Office Hours (ouroboros-leios#854).
  • Peras protocol development (Treasury Funding Initiative 17: Maintenance and Support):
    • Defined sensible default values for PerasParams, simplifying configuration for downstream users (#1998).
  • Documentation (Treasury Funding Initiative 17: Maintenance and Support):
    • Added an explanation page describing the data flow between consensus components (#1955).
    • Published a first iteration of an explanation page covering the Ouroboros Praos consensus protocol (#1960).
    • Removed leftover documentation stubs and cleaned up the sidebar on the consensus website (#1956).
  • Releases and integration (Treasury Funding Initiative 17: Maintenance and Support):
    • Released ouroboros-consensus-3.0.1.0 (#1987).
    • Bumped the node's consensus dependency to 3.0.1, propagating recent consensus improvements to cardano-node (cardano-node#6533).
    • Re-landed the rework of snapshotFromIS, part of ongoing improvements to ledger snapshotting (#1992).

Ledger Team Update

· 6 min read
Alexey Kuleshevich
Ledger Team Software Engineer

High level summary

These were our main areas of focus last period on the Ledger project:

Maintenance

We worked really hard in order to prepare Ledger for the cardano-node-10.7.0 release that had all of the bug fixes and features needed for the upcoming van Rossem Hard Fork into protocol version 11. Furthermore, we prepared Ledger for a subsequent cardano-node-10.7.1 release that had some of the performance issues resolved, which were identified in the Ledger component of 10.7.0 release.

We've also identified and fixed a few bugs, most of which were in CDDL specification. This was largely thanks to the recently integrated tool AntiGen, that we developed specifically for creating negative property tests for Ledger serialization.

Besides bug fixes, we've added quite a few nice optimizations, which do result in noticeable speed up in chain validation and replay.

Some very nice improvements were implemented for the Ledger API used by Consensus, which will result in clearer and safer boundaries between those two components.

CIP-118 - Nested Transactions:

Two more major Ledger rules UTXO and UTXOW were defined for processing transactions in the Dijkstra era that now take sub-transactions into consideration.

CIP-165 - Canonical Ledger State:

Fixes were applied to canonical ledger state representation for the Constitutional Committee

Low level summary

Features

  • PR-5654 - Normalize StakeRefPtr addresses better and improve UTxO decoding
  • PR-5647 - Change B constructor of Metadatum from ByteString to ByteArray
  • PR-5655 - Add ToJSON/FromJSON instances for NonEmptyMap and NonEmptySet
  • PR-5630 - Remove distinct_bytes hack, make CDDL reflect reality in previous eras
  • PR-5560 - *EraBlockHeader typeclasses deprecating BHeaderView
  • PR-5658 - Optimize Text byte length check in metadata and other places
  • PR-5632 - Forecast API
  • PR-5671 - Remove NoThunks instances for predicate failures and ContextError types
  • PR-5635 - ScriptPurpose aware memoization of TxInfo
  • PR-5676 - Remove state update from UTXOS
  • PR-5641 - Avoid unnecessary computation of PlutusWithContext
  • PR-5672 - Make ContextError constructors from Alonzo to Dijkstra era lazy
  • PR-5614 - SUBUTXO implementation
  • PR-5668 - SUBUTXOW fixes
  • PR-5704 - Backport: revert ConwayAccountState type unrolling
  • PR-5697 - Remove 5 redundant NativeScript era ~ Timelock era constraints (#5319)
  • PR-5665 - Fix metadatum decoder and chain_code CDDL
  • PR-5681 - Add/refactor committee-related canonical namespaces
  • PR-5725 - Revert decoders to a more efficient implementation
  • PR-5716 - Move applyTick into its own ApplyTick typeclass
  • PR-5719 - Add protocol version validation to createInitialState
  • PR-5729 - Fix ConwayAccountState overhead
  • PR-5727 - Add storable instances

Testing

  • PR-5656 - Translate all transaction building examples in our test files to use Lens interface.
  • PR-5609 - Adequate conformance to Version restriction
  • PR-5667 - Fix Proposal generation to generate HardForkInitiation with bounded major version
  • PR-5695 - Update formal-ledger-specifications and re-enable tests
  • PR-5529 - Add simpleRewards reproducer from cardano-db-sync and migrate TwoPools example to an ImpTest
  • PR-5715 - Bump cuddle to 1.5.0.0

Infrastructure and releasing

  • PR-5653 - Add cabal-gild and shellcheck as part of the pre-commit hook in our Nix devShell.
  • PR-5648 - Changelog for cardano-node-10.7
  • PR-5657 - Migrate scripts to cardano-ledger-release-tool
  • PR-5599 - Enable ghc 9.14 to be used for tests in CI and locally
  • PR-5677 - Bump requests from 2.32.4 to 2.33.0 in /doc
  • PR-5675 - Add nixfmt in our Github CI checks
  • PR-5670 - Add CHANGELOG and cabal file updater skill
  • PR-5691 - Bump pygments from 2.19.1 to 2.20.0 in /doc
  • PR-5702 - Update contribution policy to note how contributions should be vetted
  • PR-5703 - Add a CI workflow for checking nix hashes
  • PR-5708 - Bump the actions group with 3 updates
  • PR-5709 - Update slack-github-action configuration for v2 onward
  • PR-5712 - Fix missed version bump for allegra package
  • PR-5713 - Stop running bump-changelogs on release branches
  • PR-5666 - Refactor transaction and transaction body of examples in Test.CardanoLedger.<era>.Examples.hs.
  • PR-5717 - claude: improve changelog update skill
  • PR-5710 - Update microlens dependency
  • PR-5726 - Update ghc-9.12 on CI and Nix to ghc-9.12.4, and cabal-3.16 to cabal-3.16.1.0
  • PR-5728 - Backport of fixes for cardano-node-10.7.1
  • PR-5741 - Fix nix build failure in plutus-preprocessor
  • PR-5721 - Leios: Make the (leios enhanced) block decoding backwards compatible

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team completed several SNARK-related tasks. They created a new module for the recursive SNARK circuit in the STM library, added support for test mode, refactored the bytes codec for forward and backward compatibility, synchronized updates from the non-recursive circuit prototype, prepared a testing plan for the IVC circuit, enhanced witness preparation for the non-recursive prover, and added golden tests for the recursive SNARK circuit prototype.

They also completed partial block range support, security parameter offset signing, and the WASM client implementation for Cardano blocks and transactions. In addition, they continued work on the explorer update and on documenting Cardano block and transaction signatures on the website. The team also progressed the upgrade to Cardano node v.10.7 and completed DMQ node updates to 0.4.1.0 and 0.4.2.0.

Finally, they completed cross-compiled Windows builds from Linux using Nix, fixed node build failures in Hydra CI, and investigated a SNARK aggregator certification stoppage on the dev network.

Low level overview

Features

  • Completed the issue Refactor bytes codec in STM library for forward/backward compatibility #3065
  • Completed the issue Support test mode for the recursive circuit #2984
  • Completed the issue Create recursive SNARK circuit new module in STM #3123
  • Completed the issue Synchronize updates of non recursive circuit prototype to STM library #3121
  • Completed the issue Support partial block range in Cardano blocks and transactions #3099
  • Completed the issue Sign security parameter offset in ProtocolMessage for Blocks and Transactions #3098
  • Completed the issue Implement Cardano Blocks and Transactions in WASM client #3078
  • Completed the issue Prepare Testing plan for IVC circuit #3124
  • Completed the issue Implement a Cardano bundle Docker image #3189
  • Worked on the issue Prepare production readiness for circuit keys and trusted setup in STM #3165
  • Worked on the issue Enhance preparation of witness for the non-recursive prover in STM #3178
  • Worked on the issue Add golden tests for recursive SNARK circuit prototype #3125
  • Worked on the issue Update explorer for Cardano Blocks and Transactions #3079

Protocol maintenance

  • Completed the issue Update DMQ node to 0.4.1.0 #3114
  • Completed the issue Update DMQ node to 0.4.2.0 #3196
  • Completed the issue Cross-compile Windows builds from Linux using Nix #1886
  • Completed the issue Mithril node build fails in Hydra CI #3161
  • Worked on the issue Upgrade to Cardano 10.7 #2894
  • Worked on the issue Document Cardano Blocks and Transactions signature in website #3101
  • Worked on the issue Update client test in CI to check blocks and transactions #3159
  • Worked on the issue SNARK aggregator certification stopped on dev-follower-preview #3183

SRE Team Update

· 4 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-parts and cardano-playground were updated with cardano-node 10.6.2, cardano-node pre-release 10.7.0, nixpkgs 25.11, ZFS AMI support, new Loki log dashboards, and extensive monitoring improvements including per-machine absent metrics alerting and mempool timeout alerts.

  • The dijkstra network was fully respun with updated secrets, configs, and a Van Rossem PV11 cost model governance action prepared.

  • CloudFormation stack hardening was applied: dedicated S3 server access logs bucket, TLS-only bucket policies, DynamoDB deletion protection with PITR, and KMS encryption.

  • Ouroboros-network-ops was brought up to a recent cardano-parts release with new resource tagging for CloudFormation and OpenTofu resources.

Repository Work -- Merged

Cardano-airgap

cardano-airgap PR#13:

  • Adds midnight-cli to the air-gapped signing toolset

Cardano-mainnet

cardano-mainnet PR#42:

  • Deploys all nodes to 10.6.2, and all dbsyncs to 13.6.0.7
  • Upgrades nixpkgs to 25.11 and nix to 2.33-maint
  • Adds bootstrap OpenTofu environment and ZFS AMI NixOS module support
  • Adds Loki log shipping with four new log dashboards; removes superseded node-exporter Loki dashboard
  • Adds per-machine machine_metrics_absent alert, tx mempool timeout alerts, and tightened blockHeight threshold
  • Hardens CloudFormation stack with TLS-only policies, DynamoDB deletion protection and PITR, and KMS encryption
  • Rotates the mainnet pool KES keys
  • See the PR description for additional details

Cardano-parts

cardano-parts PR#79:

  • Bumps cardano-node release to 10.6.2, pre-release to 10.7.0, cardano-db-sync release to 13.6.0.7, pre-release to 13.7.0.1, and other component updates
  • Bumps nixpkgs to 25.11 and nix to 2.33-maint with required compatibility fixes
  • Introduces ZFS AMI support via a new ami.nix nixosModule with tank/{root,nix,home,state} dataset layout and new bootstrap OpenTofu environment
  • Removes the deprecated Grafana Agent (EOL 2025-11-01), migrating fully to Grafana Alloy with Loki log shipping support
  • Adds four new Loki log dashboards: cardano-node-logs.json, cardano-node-logs-json.json, systemd-logs.json, and systemd-logs-json.json
  • Adds per-machine machine_metrics_absent alert with multi-offset detection; adds tx mempool timeout alerts; tightens blockHeight unchanged alert from 10 to 7 minutes
  • Hardens CloudFormation stack: dedicated S3 server access logs bucket, TLS-only bucket policies, DynamoDB deletion protection with PITR, and KMS encryption
  • Adds Van Rossem PV11 cost model JSON to template cost-models
  • Restructures cardano-node.json dashboard with mempool timeout panels, instance filtering, and restart/version-change annotations
  • Re-adds sanchonet support to process-compose stacks and template scripts
  • See the PR description for additional details

Cardano-playground

cardano-playground PR#55:

  • Sets cardano-node release to 10.6.2, pre-release to 10.7.0, cardano-db-sync to 13.6.0.7, pre-release to 13.7.0.1
  • Upgrades nixpkgs to 25.11 and nix to 2.33-maint
  • Adds bootstrap OpenTofu environment and ZFS AMI NixOS module support
  • Adds Loki log shipping with four new log dashboards; removes superseded node-exporter Loki dashboard
  • Adds per-machine machine_metrics_absent alert, tx mempool timeout alerts, and tightened blockHeight threshold
  • Creates dijkstra respin with new secrets, updated network configs, and Van Rossem PV11 cost model governance action
  • Converts preview3-bp-c-1 and mainnet1-rel-a-3 to LSM storage backend
  • Hardens CloudFormation stack with TLS-only policies, DynamoDB deletion protection and PITR, and KMS encryption
  • Large colmena cleanup: group-based import system, removes metrics-scraper module
  • Re-integrates sanchonet via upstream iohk-nix
  • See the PR description for additional details

Ouroboros-network-ops

ouroboros-network-ops PR#30:

  • Bumps cardano-parts from v2025-06-24 to post-v2025-08-14
  • Adds new resource tags to CloudFormation and OpenTofu resources: owner, project, costCenter
  • Updates pre-existing organization and environment tags
  • Applies breaking change updates from cardano-parts release

Devx-ci

devx-ci PR#152:

  • Bumps nix in linux and darwin hosts and guests to resolve: GHSA-g3g9-5vj6-r3gj / CVE-2026-39860
  • Also bumps the darwin guest bootstrap nixpkgs version in apply.sh from 25.05 to 25.11