Skip to main content

· 2 min read
Damian Nadales

High level summary

  • Debunked our working theory on the cause of performance degradation when taking a ledger snapshot. We are now back to the UTXO set as the first contributing cause to said degradation, and together with the Ledger team we have proposed a way decrease the number of allocations when serializing the ledger state.
  • Developed the first and second draft scripts for estimating the bandwidth necessary to ensure the CPU is the bottleneck when syncing (#1240). This is informing us and the Networking Team how to refine BlockFetch for the syncing node (especially for Genesis).
  • On the UTXO-HD front:
    • After addressing several issues found during benchmarking and testing, the performance team ran benchmarks on the utxo-hd-9.1 branch, yielding positive results. The nodes function without errors. The memory and CPU usage is almost on par with the 9.1 node.
    • A tool has been provided to convert ledger state snapshots from pre-UTxO-HD nodes to UTxO-HD nodes, allowing users to use UTxO-HD right away without needing to replay the chain (since they can use their locally stored ledger state after converting it with the aforementioned tool).
    • The SDET team will run integration tests on the utxo-hd-9.1 branch. If the tests pass, we will start working on wrapping up the documentation and preparing the branch for merging once it is decided to release this feature.
    • Bear in mind that:
      • This UTxO-HD release uses an LMDB backend (but it also provides an in-memory backend). The LSM-tree backend should arrive Q1 2025.
      • UTxO-HD is just the first step of a bigger initiative for moving parts of the ledger state to the disk storage, lowering the memory requirements of the node and contributing to long term sustainability of Cardano.

· 2 min read
Noon van der Silk

High-level summary

We released 0.19.0 of the hydra-node, where the ledger has been upgraded to Conway, while still maintaining compatibility with Babbage transactions. We made some small improvements to the TUI, and did some investigations into a "Head-In-Head"-style operation of hydra, where one Head can be used to launch another. This isn't supported officially yet, but we will be considering it in the future. Up next we will continue on incremental commits, work towards a Blockfrost chain layer, and continue investigations into our core networking, and finally spend some time planning some potential upcoming Hydra Doom-related work.

What did the team achieve?

  • Switched ledger to Conway #1178
  • Remain compatible with Babbage transactions #1608
  • Manual address entry in the TUI #1607
  • Completed an investigation into "Two-phase commit" for reliability #1597
  • Hydra "Head-In-Head" Spike #1590
  • Fixed Aloglia search index on docs site #1556
  • Updated to use cardano-node 9.1.1 and mithril 2430 #1630
  • Added "HeadId" into the "Greetings" message #1557
  • Change network semantics to broadcast to everyone #1624
  • Released 0.19.0 with ledger in Conway, among other fixes

What's next?

  • Continued work on incremental commit #199
  • Continued work on Blockfrost integration #1305
  • Investigate raft for consensus networking #1591
  • Work and planning for more Hydra Doom-related activity

· One min read
Jean-Philippe Raynaud

High level overview

The Mithril team continued working on decentralizing the signature orchestration of the Mithril network. They kept implementing a buffer store for individual signatures that may arrive before being processed by an aggregator, worked on refactoring the signer state machine, and started developing a mechanism to support specific configurations for signing Cardano transactions. Additionally, they fixed the panics occurring in the signer and aggregator during Cardano chain rollbacks.

Finally, the team continued preparing the next distribution and investigated a problem preventing the consistent certification of Cardano transactions in the pre-release-preview network.

Low level overview

  • Completed the issue Panic on rollback on slot number not recorded in the Cardano transactions store #1929
  • Completed the issue Test Cardano transaction chain rollbacks #1840
  • Worked on the issue Release 2437 distribution #1901
  • Worked on the issue Cardano transactions certification stopped in pre-release-preview #1938
  • Worked on the issue Aggregator buffers signatures for unknown open message #1900
  • Worked on the issue Refactor state machine of the signer #1922
  • Worked on the issue Retrieve custom signing configurations with epoch settings in signer #1923
  • Worked on the issue Breaking change in crane fails Hydra CI #1928

· 2 min read
Marcin Szamotulski

High-level overview of sprint 70

Cardano CLI

cardano-cli ping command cannot send pings over unix sockets using node-to-client mini-protocol (since it doesn't support it). In that case, the command will now show a user-friendly error message. See cardano-cli#49.

Mithril

We held a session with the mithril team to discuss design & implementation of Mithril using ouroboros-network.

Ouroboros-Network

TxSubmission Logic

We continued working on tx-submission logic. We developed new tests that run several simulated outbound peers offering transactions and a single inbound peer governed by the new tx-submission logic. Ref ouroboros-network#3311.

The next step is to clean the branch and integrate it with ouroboros-consensensus & cardano-node for early e2e tests.

Bulk-Sync for Genesis

We reviewed the new bulk-sync application for Genesis mode, see ouroboros-network#4919.

Typed-Protocols

We reviewed the new typed-protocols API PR. It was recently merged & published to CHaP. Once Haskell.Nix has better support for public sub-libraries, we will package all the libraries in one package and publish it on Hackage. Ref: typed-protocols#52.

The next step is to update, review the integration PR in ouroboros-network, see ouroboros-network#4935.

Nightly Tests

We fixed a long-due failure on a nightly test. The failure was due to IOSimPOR ability to reorder simulated IO actions, resulting in a wrong order of events. So, it's not a bug in the production code but in the test itself. See ouroboros-network#4948.

Updated readme file

We updated the dependency graph in our README.md file.

Next Sprint

sprint-71

· 2 min read
Jordan Millar

2024-09-04 - 2024-09-18

High level summary

In line with our ongoing refactoring work, we began propagating the experimental api in cardano-cli. This will continue for several sprints as we remove eras prior to mainnet in order to reduce the unnecessary complexity of cardano-api's and cardano-cli's codebases. Other work:

  • New functionality has been added to cardano-cli and cardano-ping
  • Collateral balancing bug has been fixed in cardano-cli
  • optparse-applicative-fork dependency has been removed
  • Various refactors and improvements to cardano-testnet

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance