Skip to main content

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the incremental certification of the Cardano database: they kept working on creating and synchronizing the artifacts. The team finished exploring solutions for signer registration in networks with multiple aggregators and updated the About Mithril section of the website. They also progressed with developing a cache for certificate verification in the WASM client.

Finally, the team accelerated the creation of signer fixtures in the tests and added execution rights to the binaries pre-built in the CI.

Low level overview

  • Completed the issue Explore Signer Registration Solutions #2029
  • Completed the issue Reorganize the About Mithril section in the documentation website #2154
  • Completed the issue Feat: add execute rights on pre-built binaries in CI #2156
  • Completed the issue Accelerate signer fixtures creation in tests with pre-computation #2153
  • Worked on the issue Implement artifacts builder for Incremental Cardano DB #2151
  • Worked on the issue Release 2450 distribution #2124
  • Worked on the issue Handle cache for certificate verification in WASM client #1484
  • Worked on the issue Activate Pythagoras Mithril era #2034

· 3 min read
Marcin Szamotulski

Overview of sprint 76

Network Load

The Cardano Foundation monitors the network by injecting "canary" transactions, allowing us to measure the time taken for a transaction to be included in a block. Approximately four to five of these transactions are submitted every hour.

Since early November, network load has increased, but most transactions are still included within the first or second block after submission. Even if the network is not congested, transactions may not reach the Block Producer responsible for the next block in time due to network propagation delays. Therefore, only a transaction that takes three or more blocks to be included indicates a loaded network.

Since November 1, 2024, we have submitted around 3,700 "canary" transactions, and only 59 of them took longer than two blocks to be included, meaning 98.4% of our test transactions were included within the two-block limit. During this period, the longest observed time to inclusion was five blocks for two transactions and the maximum wait time is 201 seconds.

Network Load

Where the y-axis is a fraction of the block size in the respected dimension (e.g. size, steps, memory).

Hot Standby Block-Producer Nodes

In the last Network Working Group Meeting (NWG) we discussed solutions for running hot standby block producers using P2P.

Short-Term Solution: Local Root Initiator Only Outbound Connections

We agreed to implement initiator-only connections for local roots, which wouldn't bind to the node address (and thus would be made from an ephemeral port). This allows SPOs to have hot standby nodes which are hidden from relays using a firewall rule, while they still can connect to the relays (so they receive blocks while the blocks they produce are not sent to the network). See the ouroboros-network#5020 issue and associated PRs:

The latter PR makes P2P node run on systems with multiple network interfaces or a single interface with multiple IP addresses.

An SPO can control the diffusion mode (initiator only / initiator and responder) in the topology file. A draft PR is available in the coot/connection-manager-initiator-only-0.13.2.5 branch.

In the NWG meeting, it was agreed that once this functionality is implemented, we can remove NonP2P code from ouroboros-network (ouroboros-network#5007).

Long-Term Solution

An agreed long-term solution is to allow to control block propagation of self-produced blocks through cardano-cli.

Reusable Diffusion

We continued working on making ouroboros-network reusable for both cardano-node and mithril (see CIP#137). The PR can be found here: ouroboros-network#5016, while a more detailed description of its direction can be found here. During this sprint, we carried out a team-wise PR review.

Block Fetch Client For Genesis

A new block-fetch client designed for Genesis was merged, see ouroboros-network#4919. The design of the new block-fetch Gensis logic is described in here.

KES Agent: Raw Bearer API

We recently merged ouroboros-network#4395 - a PR which is important for the KES-agent workstream.

· One min read
Alexey Kuleshevich

High level summary

This period we have discovered and fixed a bug in ledger that was also backported in a patch release of cardano-node-10.1.3. The bug manifests itself in the protocol version 10 and affects DRep delegations. It does not affect mainnet in a meaningful way, because DReps cannot yet vote on any proposal that affects the ledger state or the chain. However, in order to have the correct behavior in the protocol version 10 we do need to use this patched version.

Besides this bugfix we continued working on testing and taking care of some tech dept. We also added a new ledger state query that allows asking the node for current DRep voting stake distribution.

Low level summary

  • pull-4764 - Add registered DRep stake distribution query
  • pull-4748 - Add Conformance.Imp: imptests with conformance
  • pull-4767 - Simplify working with current epoch number
  • pull-4773 - DRep undelegation fix
  • pull-4774 - Backport release: cardano-ledger-conway-1.17.3.0
  • pull-4777 - Upgrade to plutus-ledger-api 1.37.0.0
  • pull-4779 - Change type of nOpt pparam to Word16

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued implementing the incremental certification of the Cardano database. They completed the computation of the message to sign and started working on creating and synchronizing the artifacts. The team also continued exploring solutions for signer registration in networks with multiple aggregators and progressed on developing a cache for certificate verification in the WASM client.

Finally, they implemented a retry mechanism in the end-to-end tests within the CI to address flakiness and investigated methods to track the origin of client requests.

Low level overview

  • Completed the issue Implement signable builder for Incremental Cardano DB #2122
  • Completed the issue Implement retries in e2e tests in CI #2123
  • Completed the issue How to record origin of client requests? #2077
  • Completed the issue Add the Cardano network in the status page #2144
  • Completed the issue Fix clippy warnings with Rust 1.83.0 #2147
  • Worked on the issue Implement artifacts builder for Incremental Cardano DB #2151
  • Worked on the issue Release 2448 distribution #2124
  • Worked on the issue Reorganize the About Mithril section in the documentation website #2154
  • Worked on the issue Handle cache for certificate verification in WASM client #1484
  • Worked on the issue Activate Pythagoras Mithril era #2034
  • Worked on the issue Explore Signer Registration Solutions #2029

· 2 min read
Jordan Millar

2024-11-20T00:00:00Z - 2024-12-04T00:00:00Z

High level summary

Major Enhancements

  • Byron Genesis Support: Added capability to create Byron genesis files in the create-testnet-data command
  • HTTP Support for Anchor Data: Modified anchor-data checking to allow HTTP schema (with warnings) for testing purposes
  • Minting Script Witness Refactoring: Introduced MintScriptWitnessWithPolicyId as a first step toward deprecating ScriptWitnessFiles, making the code more maintainable and flexible
  • Code Sharing Improvements: Implemented shared code between genesis commands and query fields, reducing duplication and improving maintainability

API Enhancements

  • Released cardano-api-10.3.0.0
  • Implemented and exported the Convert typeclass for better eon type conversion handling
  • Exposed functions for converting datums and scripts to JSON

cardano-cli

cardano-api

cardano-node

  • None

cardano-testnet

  • None

docs

  • None

CI & project maintenance

  • None