Skip to main content

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team completed aggregator optimizations, enabling the certification of new data types without introducing a new era. They also facilitated the selection of these data types through a simple configuration parameter. Additionally, the team started implementing a mock aggregator to strengthen Mithril client tests in WASM, kept working on threat modeling and risk analysis for P2P networking, and progressed with the implementation of a testing Mithril network for SanchoNet.

Finally, they worked on some optimizations and refactoring of the Mithril client CLI and started upgrading the Cardano node topology used in the Mithril networks' infrastructure.

Low level overview

  • Completed the issue Implement open_message timeout in aggregator #1387
  • Completed the issue Implement configurable signed entity types in aggregator #1388
  • Completed the issue Enhance machine readable logs in client #1234
  • Completed the issue Manual publication to npm registry with GitHub action #1411
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Simplify Mithril client CLI download command #1406
  • Worked on the issue Make all infra Cardano nodes use P2P topology #1405
  • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
  • Worked on the issue Enhance Mithril/Cardano node communication #1315

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team identified and resolved issues with a malfunctioning head on mainnet, implementing preventive measures. They edited and merged a new Architectural Decision Record (ADR) proposed by SundaeLabs, upgraded cardano-node to version 8.7.2, and improved the TUI user experience. Preparations for "Conway support" were initiated, and updates were made to logs and API schemas. Additionally, initial steps were taken towards incremental decommits.

What did the team achieve this week

  • Troubleshoot and recover a broken head on mainnet. Opened issue #1202 and PR avoiding this in-flight #1211
  • Designed and proposed a new ADR to generalize EventSource and EventSinks#1157, contributed by SundaeLabs.
  • Upgrade cardano-node to 8.7.2 #1199 and re-enables e2e nix-shell support on Darwin #1203
  • UX enhancement on TUI #1201
  • Preparations for "Conway support" #1177[#1206 & #1207]
  • Update logs and api schemas #1212
  • First steps on incremental decommits #1057:
    • Drafted the e2e workflow #1205
    • Added decommit API endpoints #1209

What are the goals of next week

  • Detect incompatible blocks and provide better UX
  • Conway support in hydra-node
  • Off-chain logic for incremental decommits

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team completed the adaptation of the Mithril client library for WASM compilation, providing a JavaScript API for it. They also completed the proof of concept to demonstrate that a subset of Cardano transactions is part of the entire transactions set. The refactoring of the Mithril client CLI with the Mithril client library was also finalized. Additionally, the team kept working on the threat modeling and risk analysis for P2P networking, along with progressing in the implementation of a testing Mithril network for SanchoNet.

Finally, they started implementing an expiration mechanism for the open messages in the aggregator, and they completed the upgrade of Rust dependencies with breaking changes.

Low level overview

  • Completed the issue Light Wallet: Implement mithril-client WASM library #1336
  • Completed the issue Light Wallet: Certify Cardano UTXO/transactions set PoC #1393
  • Completed the issue Refactor mithril-client-cli with mithril-client library #1335
  • Worked on the issue Implement open_message timeout in aggregator #1387
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Enhance machine readable logs in client #1234
  • Worked on the issue Create a test network on SanchoNet #1173
  • Completed the issue Upgrade breaking changes crates #1357
  • Worked on the issue Enhance Mithril/Cardano node communication #1315

· 4 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarking for node 8.7.2, as well as P2P benchmarks - the latter being a premiere for the Nomad cluster.
  • Development: Work on automating the submission of Conway transactions for registration of and stake delegation to DReps is ongoing.
  • Infrastructure: We're preparing to safely retire our current benchmarking cluster.
  • Tracing: The documentation for the new tracing system is being reworked. Additionally, we've added a feature to cardano-tracer to capture performance over a long runtime.
  • Nomad cluster: The Nomad backend has been successfully equipped with support for up-to-date P2P topology, as well as deployment for Plutus script data.

Low level overview

Benchmarking

We've performed a full set of release benchmarks for node 8.7.2. From a performance perspective, it has been greenlit for mainnet release. Starting with this version, our team will publish observations alongside the original comparative analysis of benchmarks, providing insight into key metrics and resource usage. Hence, for the post on version 8.7.2, see here.

Additionally, we're running P2P versus no-P2P benchmarks on the same version. We intend to establish future baseline runs using P2P topology as the default setting. All our cluster nodes being block producers, it is crucial to establish the P2P stack does not exhibit any regression regarding block forging. Furthermore, the evidence gathered from those benchmarks forms the base for a recommended setting for P2P on mainnet block producers.

It deserves special mention that those P2P benchmarks are our first production runs with the Nomad cluster - and using the new tracing system exclusively. Having finalized all optimization rounds of the latter, and having meticulously eliminated all confounding factors from the Nomad infrastructure, we're confident in the measurements being subject to extremely low variance - which we made sure of in many past validation runs on Nomad.

Development

Orchestrating DRep actions into benchmarking workflows has opened up a fairly large design space. Currently, we're focusing on having stake delegated to DReps, in order to trigger ledger pulses for calculations particular to DRep actions. We can benchmark a possible performance impact of those pulses - even if there are no actions ongoing - as a first step.

The contributing factors to the cost of those pulses are both the number of DReps registered, and the number of delegations to them. It is still under debate which values represent a probable model for mainnet, and whether we can achieve stake delegation programmatically (i.e. by submitting transactions), or if, for large numbers, we need means to inject those delegations into genesis.

Infrastructure

With the switch of all production benchmarks to the Nomad cluster, we will retire the legacy cardano-ops cluster very shortly. Currently, we're making sure that when all its resources are released, we keep an archive for all runs performed, including all raw log data - with the oldest runs dating back as far as December 2019.

Tracing

We've outfitted the cardano-tracer service with the same kind of resource tracing machinery that's used by cardano-node - as well as created a dedicated benchmarking profile for it. It puts very little pressure on the node; instead it causes 6 nodes to emit traces at a rate of >35 messages per second, putting pressure on cardano-tracer via trace forwarding at >200 messages per second for an extended period of time. Analysis of these traces will form the ground for various optimizations of cardano-tracer that are currently being worked on.

As we aim for early 2024 to be able to recommend the new tracing system as default in production use, we're currently also reworking the comprehensive documentation to reflect all changes made over the last months.

Nomad backend

In addition to being able to deploy Plutus script data and redeemers seperately (instead of inlining them as the legacy cluster did), the Nomad cluster now supports being set up with recent P2P topology. No-P2P topology format will still be supported for occasional regression benchmarking of the P2P stack, when desired. Furthermore, we've completed porting all benchmarking profiles from the legacy cluster to Nomad.

· One min read
James Chapman

The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

High level summary

The team is currently formalising mini protocols, working on a performance modelling paper and working on a performance modelling prototype tool

Details

  • completing work on chain sync mini-protocol

  • proof sketch of conformance property of chain sync mini-protocol

  • new content for JLAMP paper

  • NWPT talk