Skip to main content

· 2 min read
Ziyang Liu

High level summary

Over the past two weeks, we’ve been working on the Plutus section of the Cardano blueprint, adding documentation to make it easier for developers to implement alternative Plutus Core evaluators.

We’ve also continued improving the Plutus language itself, completing the costing and property-based testing for the modular exponentiation primitive, and thte costing for new built-in array primitives.

For case analysis on Bool, we’re currently evaluating different approaches to ensure we choose the most robust and forward-compatible solution.

On the formal methods side, we made further progress toward the initial release of the certifier. This includes integrating it with the Plinth compiler and exposing plutus-metatheory as a reusable library.

In our most recent Plutus working group meeting - which we've begun publishing publicly - we presented overviews and demos of both the certifier and the built-in arrays. Feel free to check it out.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

  • Allow casing on booleans
  • Review the Builtin Values CIP
  • Conformance tests for the modular exponentation primitive (in plutus-private)
  • Fix the certifier for two UPLC forceDelay tests (in plutus-private)
  • Write a landing page and a page about serialization/deserialization for the Cardano blueprint (in plutus-private)
  • Add MSM primitive to Plutus (in plutus-private)

· 2 min read
John Lotoski

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 and cardano-cli pre-release versions are now set to 10.4.1 and 10.8.0.0, respectively, in cardano-parts release v2025-05-01.

  • In cardano-node, support for GHC 8.10 has been removed in master reducing CI eval times to < ~3 min. The next tagged pre-release or release after node 10.4.1 will support only GHC 9.6.

Repository Work -- Merged

Cardano-parts

Cardano-node

  • Auto ghcr latest tagging currently occurs on full releases. Promotion of pre-release to release, however, doesn't trigger a published event, and instead requires a manual workflow dispatch off the newly promoted release tag. This PR adds ghcr latest tagging to the manual workflow dispatch pre-release to release use case. cardano-node-pr-6200

  • Drops support for haskellNix ghc 8.10.x which also reduces eval time to ~3 min with the removal of 249 variant packages. cardano-node-pr-6206

  • Removes the eventlogged package as ghc >= 9.4 includes unconditional -eventlog support in RTS. cardano-node-pr-6208

Cardano-playground

  • Sets node pre-release to 10.4.1 and cardano-cli pre-release to 10.8.0.0 with cardano-parts release v2025-05-01. Updates and deploys cardano-book configuration for node pre-release 10.4.1. Adds preview1-test-a-1 machine, sops updates and secrets for test forging across legacy and new tracing. cardano-playground-pr-44

Repository Work In Progress -- PRs and Branches

· One min read
Alexey Kuleshevich

High level summary

Ledger team started preparation for an intra-era hard fork, by bumping support for major protocol version 11 in Conway era. Besides that we've continued addressing tech debt, improving safety of the codebase and enhancing our constraint based testing framework.

Low level summary

Features

  • pull-5001 - Remove heapwords from cardano-ledger-core
  • pull-5013 - Move orphan ToPlutusData instances with their types
  • pull-5005 - Made TxBody a data family
  • pull-5004 - Remove delegators field from conway-genesis JSON
  • pull-5023 - Bumped Conway protocol version max to 11
  • pull-5021 - Add SupportedLanguage

Testing

  • pull-5010 - constrained-generators: Use csongor's trick to make type errors nicer
  • pull-5002 - Add EraTest classes
  • pull-5020 - Update and fix ledger-state benchmarks

Infrastructure and releasing

  • pull-5025 - cardano-ledger-byron: remove Cabal-syntax dependency

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team released the new distribution 2517.1, which addresses a client security issue discussed in this developer blog post. This version supports Cardano node v.10.3.1 and allows for signing ancillary files in the Cardano database snapshots using an IOG key. It also includes various bug fixes and improvements.

The team continued progressing on the DMQ node implementation by adjusting the cadence of the signer and aggregator state machines and developing the delayer and retrier decorators to support multiple signature publishers in the signer.

Finally, they worked on fixing some bugs in the infrastructure and kept refactoring the STM cryptographic library for improved clarity.

Low level overview

  • Released the new distribution 2517.1
  • Published the security advisory Mithril snapshots for Cardano database could be compromised by an adversary #GHSA-qv97-5qr8-2266
  • Published a dev blog post about the Mithril client security advisory
  • Published a dev blog post about the Breaking changes in client library and CLI
  • Published a dev blog post about the Distribution 2517 availability
  • Completed the issue Release 2517 distribution #2410
  • Completed the issue Upgrade to Cardano 10.3 #2446
  • Completed the issue Missing protocolMagicId file in client restoration for Cardano Database #2464
  • Completed the issue Terraform deployment should fail if the era adapter parameters computation fails #2451
  • Completed the issue Optimize run intervals handling in signer and aggregator state machines #2428
  • Completed the issue Add signed ancillary files verification in manual Client Multi Platform Test workflow #2458
  • Completed the issue Fix aggregator commands automatic documentation #2450
  • Worked on the issue Implement delayer and retrier decorators of the signature publisher in signer #2461
  • Worked on the issue Add warning in client when not downloading ancillary files #2459
  • Worked on the issue Rollout Cardano Database v2 feature #2409
  • Worked on the issue Re-organize STM library structure #2369
  • Worked on the issue Signer fails to access Cardano node after it has rebooted #2426

· 3 min read
Michael Karg

High level summary

  • Benchmarking: 10.4.1 release benchmarks; UTxO-HD, GC settings and socket I/O feature benchmarks.
  • Development: Abstracting over quick queries and trace queries; enabling query processing on remote hosts.
  • Infrastructure: Workbench simplification merged; GHC8.10 tech debt removed.
  • New Tracing: Provided hotfix for several metrics.

Low level overview

Benchmarking

We've completed release benchmarks for Node 10.4.1. It is the first mainline release of an UTxO-HD node featuring LedgerDB. Leading up to the release, we previously performed and analysed UTxO-HD benchmarks. We were able to document a regression in RAM usage, and assisted in pinpointing its origin, leading to it being fixed swiftly for the 10.4 release.

Additionally, we ran feature benchmarks for a potential socket I/O optimization in the network layer, and GC setting changes catering to the now-default GHC9.6 compiler. Both benchmarks have shown moderate improvements in various performance metrics. This might enable the network team to pick up the optimization for 10.5. Also, we might be able to update the recommended GC settings for block producers, and add them to our own nix service configs for deployment.

The 10.4.1 performance report has been published on Cardano Updates.

Development

We've further evolved the (still experimental) quick query feature of our analysis tool locli. Parametrizable quick queries allow for arbitrary queries into raw benchmarking data, uncovering correlations not part of standard analysis. They are implemented using composable definitions inside a filter-reduce framework. With locli's DB storage backend, we can leverage the DB engine to do much of the work. Now, we're integrating a precursor to quick queries - so called trace queries - into the framework. Those can process raw trace data from archived log files. Currently, we're adding an abstraction layer such that it is opaque to the framework whether the data was retrieved (and possibly pre-processed) from a DB or from raw traces.

Furthermore, we added a custom (CBOR-based) serialization for intermediate results so a query can be evaluated on a remote machine - like the system archiving all benchmarking runs - but triggered, and its results visualized, on your localhost.

Infrastructure

The workbench nix code optimization has finally been merged. Redundant derivations and recursions have been replaced; many nix store entries have been consolidated. Among other things, the new code also aims to maximize nix cache hits. Furthermore, as GHC8.10 has now been officially retired from all build pipelines, we were able to clean up all tech debt in our automations that we had to keep around due to supporting the old compiler version.

Exactly as we had hoped, this has brought down CI time for the Node by orders of magnitude; first, from over an hour to around 15 min, then to under 10 min. Also, all workbench shell invocations are significantly faster, and clutter in the nix store is greatly reduced.

New Tracing

We've been hurrying to provide hotfixes for connectionManager_* and slotsMissed metrics that were faulty on Node 10.3. They have been successfully integrated into the Node 10.4 release.