Skip to main content

· 2 min read
Alexey Kuleshevich

High level summary

This period we reached a major milestone, namely we now have an initial version of Conway conformance testing working. We are now able to generate random valid data with the help of constraint based testing framework, apply that data to Conway Ledger rules and verify that the output matches to the one produced by the executable version of the Formal Ledger Specification, when it is applied to the same random data.

We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get Constitutional Committee query is complete and tested. Various improvements to the testing tools. Addition of more test cases.

Low level summary

Conway

  • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
  • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
  • pull-3855 - Remove unreachable proposals
  • pull-3903 - Add lenient decoder for Addr
  • pull-3878 - Committee query - implement next epoch change

Testing

  • pull-3893 - Move tree-diff dependency to tests together with all instances
  • pull-3896 - Fix Brute force failure
  • pull-3904 - New ListWhere Pred added to the Constrained Solver.
  • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
  • pull-3883 - Committee QuerySpec Imp Test
  • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
  • pull-3908 - Use upstream testing instances for very basic types
  • pull-3912 - Removed call to tail, and the 'watchPulser' test
  • pull-3852 - Added constrained generators to conformance tests - Part 1

Improvements and releasing

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team made progress in adapting the Mithril client library for WASM compilation and providing a JavaScript API for it. They also completed the optimization of the aggregator's performance. Additionally, the team initiated the implementation of a testing Mithril network for SanchoNet and conducted threat modeling and risk analysis for P2P networking.

Finally, they enhanced the developer experience of the Mithril client library by providing ready-to-run examples in the repository and implemented a workflow to manually publish libraries on crates.io.

Low level overview

  • Worked on the issue Light Wallet: Release mithril-client WASM library #1336
  • 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 Upgrade breaking changes crates #1357
  • Worked on the issue Enhance Mithril/Cardano node communication #1315
  • Completed the issue Enhance aggregator REST API performances #1327
  • Completed the issue Signer runtime is stuck for some SPO #1312
  • Completed the issue Make mithril-client examples full crates #1385
  • Completed the issue Manual publication to crates.io with GitHub action #1380
  • Completed the issue Remove sqlite dependency from mithril-client crate #1390

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Release benchmarking for node 8.7.0. Also, we performed the first-ever Conway benchmarks.
  • Development: Conway capability of our workload generator has been implemented and merged to master.
  • Infrastructure: Changes to our workbench facilitating easy access and archiving of raw benchmarking data.
  • Tracing: Quality-of-life improvements to tracing output and addition of a test suite.
  • Nomad cluster: Expand the list of benchmarking profiles that can be run on Nomad; generalize cluster topology generation.

Low level overview

Benchmarking

A full set of benchmarks for node 8.7.0 has been performed, with the focus of enabling the next mainnet release. We've measured slight performance improvements of 8.7.0 over 8.6.0, and can confirm no regressions have been introduced.

Furthermore, we've run system integration level benchmarks in the Conway era for the first time, on the same node version. Only Babbage-compatible workloads have entered comparison as to ascertain performance consequences of only changing the ledger version, and nothing else. The results are very promising, as we could show that switching ledger versions for existing workloads does not come with a performance penalty.

Development

Our transaction generator has been extended to be able to submit all present benchmarking workflows in the Conway era. Currently, we're looking into adding Conway-exclusive features, such as DRep registration. Those would be submitted at the very beginning of a run, as we're interested in seeing potential performance implications of maintaining DRep sets of varying size in ledger. Furthermore, this will serve as the basis for future development Conway-exclusive workloads, such as governance actions or vote tallying.

Infrastructure

As our workbench will be pivotal in orchestrating and organizing benchmarking runs on the Nomad cloud backend, we've improved how raw benchmark data is tagged, which metadata is documented in an automated manner. This enhances both access to existing run sets, as well as maintaining an archive for benchmarking data.

Tracing

The new tracing system is currently receiving usability improvements as we're reworking the output of several trace messages. Additionally, we're setting up a rigorous test suite to provide safety for future development of and component integration inte the system.

Nomad backend

We've been working on adapting various benchmarking workloads, which are defined by our workbench's profiles, to running on the new infrastructure. This mainly concerns a workload utilizing Plutus, as well as peer-to-peer flavoured workloads. Furthermore, we're implementing a solution to create all possible cluster topologies algorithmically, instead of still using fixed literal definitions for some cases.

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team conducted a packed Monthly Review meeting, featuring demonstrations and the preparation of the monthly report. They addressed flakiness in tests and enhanced the logs json schema, improving overall test reliability. Additionally, the team successfully built MacOS ARM64 (aarch64-darwin) binaries in CI, expanding platform support. They further improved the network configuration by detecting incompatible persisted states, contributing to overall system robustness. Finally, the team released version 0.14.0, highlighting their commitment to delivering regular updates and improvements.

What did the team achieve this week

  • Monthly Review meeting packed with demonstrations and prepared monthly report #1189
  • Fixed several flaky tests and improved the logs json schema #1188#1190#1192
  • Built MacOS ARM64 (aarch64-darwin) binaries in CI #1182
  • Improved network configuration by detecting incompatible persisted states #1174
  • Released version 0.14.0

What are the goals of next week

  • Start work on incremental decommit
  • Continue shepherding contributed PRs to completion
  • Finish stateless-observation work
  • Open a head on a Conway network

· One min read
Damian Nadales

High level summary

The Consensus team implemented and tested a patch that does not propagate future headers. It is under review, and we expect it can be released in the next Cardano node version. On the UTxO-HD front, we finished prototyping the LedgerDB and BackingStore redesign, which is required for the LSM-tree integration and might help us implement a more resource efficient in-memory backend. With this prototype finished we can start integrating the rest of the code. We investigated the unexpected performance degradation observed when acquiring the block context. We also released Cardano node 8.7.0 and moved tree-diff outside cardano-ledger libraries.