Skip to main content

· 2 min read
Marcin Szamotulski

Overview of sprint 95

Mithril

We've been working on integrating Mithril signature verification into dmq-node. This involves implementing the necessary logic to handle and verify signatures, ensuring that the node can correctly process Mithril-related data. Progress is being tracked in issue#5175 and issue#5176.

Cardano-Node

We worked on configuration and tracing improvements for the upcoming cardano-node 10.6 release. The focus was on enhancing the user experience in Genesis and Praos modes by refining how the network topology file is handled. Specifically, we addressed issues where the topology file contains bootstrap peers and genesis snapshot file locations, which are only relevant in one of the modes. The goal is to ensure that parsing errors are minimised and that appropriate log messages are emitted instead of errors in specific scenarios. Detailed corner cases are documented in issue#6304.

Tx-Submission

We wrote a microbenchmark to evaluate the performance of the new tx-submission decision logic. The results will help identify any performance bottlenecks and guide further optimisations. See pr#5191.

Chain-Sync Protocol Specification Update

The specification of the chain-sync mini-protocol has been relaxed to reflect the Cardano-Node implementation more accurately. The changes include allowing the server to send MsgRollBackward after sending MsgFindIntersect allowing the rollback to a point before the found intersection point. See pr#5187.

Disconnection Reason Propagation

After a discussion in the networking working group, we found out that we could improve the debugging experience for SPOs by propagating the disconnection reason from the low-level connection manager to the inbound / outbound governor. This will allow SPOs to understand better why a connection was dropped. The work is tracked in pr#5189.

QuickCheck-2.15 and 2.16

We relaxed the bounds of QuickCheck dependency for the upcoming cardano-node-10.6 release for a smoother transition, see pr#5190.

· 2 min read
Ziyang Liu

High level summary

Plutus Core

  • We made a number of performance optimizations and refactoring for the Plutus evaluator and deserializer, including #7272, #7281, #7286, #7287, and #7296.

  • We added support for built-in units and pairs. This functionality will be enabled at the upcoming intra-era hard fork.

  • We continued developing the UPLC-CAPE benchmark, aimed to compare the performances of different surface languages targeting UPLC. A presentation on this was given in the Plutus working group meeting on September 2nd, 2025.

Plinth

  • We added a Plinth library function, caseInteger that compiles to casing on integers in UPLC, a feature that will be enabled at the upcoming intra-era hard fork.

  • We made the compilation fail early with a better error message when an unsupported Haskell language extension is used.

  • We added more source code location information to Plinth compiler's compilaton trace (which can be obtained using the dump-compilation-trace flag), and the error message when the compilation fails.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

· 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:

  • An Oakhost cloud Mac M4 machine was on-boarded into the mixed Hetzner and prem Darwin CI environment. An internal documentation guide was written for fast Oakhost onboarding if a need to scale Darwin resources further presents itself.

  • Adawallet received a feature upgrade to to handle native tokens in a number of subcommands for adawallet accounts. The cardano-airgap image was updated to include this capability.

  • A new IOHK signing authority key for email signing.authority@iohk.io with GPG key fingerprint ending in 0xCD0171BC90, was placed into production for package signing. The public key can be found here.

Repository Work -- Merged

Adawallet

  • Adds multiasset support to adawallet in select contexts such as send-tx, drain-tx, bulk-drain-tx, migrate-wallet, import-utxos, export-utxos. When the multiasset option is used native tokens are aggregated into a single UTXO with the minimum amount of lovelace required and lovelace only UTXOs are handled separately. A future improvement would be to handle large native tokens collections which may hit transaction size limits. adawallet-pr-24

Cardano-airgap

Devx-ci

  • Adds oak-m4-1 machine to the build cluster with associated monitoring, secrets, hydra ssh and build machine defn. Updates darwin.sh with a -b, --bindir optional arg to allow an easier darwin bootstrapping deployment. Bumps opentofu grafana provider to 4.5.3, makes a common Hetzner linux module, smaller Hetzner linux variant specific modules and refactors the existing Hetzner linux machines under those. Moves hetzner-m1.nix to darwin-state-version.nix module used by both Hetzner and Oakhost darwin machines. Adds a few clarification comments to the distributed builds nixosModule. devx-ci-pr-133

Ops-lib

  • Bumps devShell and machines nix to 2.29.1, bumps deployed machines to nixpkgs 25.05 with a small patch for nixops to continue operating, bumps iohk-nix to current head and niv to latest sources.nix. Cleans up the ssh key overlay and removes sentry relevant package, modules and scripts as usage is deprecated. Makes misc required nixos-25.05 nixpkgs module updates. ops-lib-pr-136

Repository Work In Progress -- PRs and Branches

· 2 min read
Alexey Kuleshevich

High level summary

We've implemented a feature for the next intra-era hard fork that enforces a property that is desired by the consensus componenet, which enforces uniqueness of VRF keys used by stake pools. Furthermore, we've progressed with PlutusV4 integration into Dijkstra era. Besides new features we've also tackled some tech debt and fixed a bug with JSON decoding of Alonzo Genesis file.

Low level summary

Features

  • PR-5232 - Activate future stake pools in PoolReap
  • PR-5176 - add queryDRepDelegations ledger state query
  • PR-5242 - Adds NFData instances for Genesis types
  • PR-5241 - Fix JSON parsing for CostModels
  • PR-5230 - Avoid branching on translateUpperBoundForPlutusScripts protocol version
  • PR-5229 - Disallow duplicate VRF keys for pool registration
  • PR-5236 - Add PlutusScript DijkstraEra
  • PR-5234 - Move pool deposits into StakePoolState
  • PR-5254 - Simplify POOLREAP

Testing

  • PR-5248 - Limit the map size when generating gov procedures with constrained-generators
  • PR-5246 - Increase the max ExUnits in AlonzoEraGen
  • PR-5245 - Added Cuddle validation test

Infrastructure and releasing

  • PR-5228 - Add undefined check to Github Actions
  • PR-5244 - Reverts #5188
  • PR-5235 - Add scripts for adding and updating srp's in cabal.project
  • PR-5251 - Bumped haskell-language-server to v2.11.0.0

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the mock DMQ node to support end-to-end testing of decentralized signature diffusion. They also worked on resolving a circular dependency issue with the operational certificate in the KES signer module and completed the upgrade to Cardano node v.10.5. Additionally, the team continued collaborating with the innovation team on prototyping a SNARK proving circuit for Mithril certificates.

Finally, they worked on prototyping a Mithril/Cardano bundle in a Docker image and made progress refactoring the STM cryptographic library.

Low level overview

  • Completed the issue Remove Operational Certificate circular dependency in KES signature #2668
  • Completed the issue Upgrade to Cardano 10.5 #2623
  • Completed the issue Remove features test_tools and full from mithril-client #2662
  • Worked on the issue Implement a fake DMQ node with Mithril relay #2627
  • Worked on the issue Simple Aggregation Halo2 - Prototype #2526
  • Worked on the issue Update the DMQ message structure #2670
  • Worked on the issue Prototype Mithril/Cardano bundle in Docker image #2616
  • Worked on the issue Enhance STM library readability #2568