Skip to main content

· 4 min read
Michael Karg

High level summary

  • Benchmarking: We're preparing our model cluster to perform GHC9.2 benchmarks, as well as experimenting with increased dataset sizes.
  • New tracing: After optimization work on the new tracing system, another cycle of validation and documentation is due.
  • Analysis pipeline: First steps on implementing incremental analysis have been untertaken.
  • Open Sourcing: Exhaustive dataflow charts for both our analysis tool locli and our workbanch have been merged to master
  • Nomad backend: The first set of CI-centric workbench profiles have been adjusted and run on the nomad backend; currently we're porting the definition of our model cluster.
  • P&T Meetup: We had a very productive personal meetup in Lugano, Switzerland.
  • Offboarding: Sadly, we have to say goodbye to our team lead. Currently, we're busy with the handover.

Low level overview

Benchmarking

As a compiler switch to GHC 9.2.7 for cardano-node's default build environment is around the corner, we're setting up our benchmarking cluster to handle the new version. Special attention is given to the fact that we might need more flexibility in switching compiler versions in the future. This also involves choosing a reliable baseline as reference point for inter-version comparisons.

Additionally we've been working on refining our model cluster: by increasing UTxO and delegation map sizes to closer match those of current mainnet, we strive to have a more accurate model - and thus be able to make more detailed predictions regarding performance. However, this still needs to be balanced against resource demand for all our cluster's nodes.

Tracing

For our new tracing system, we're currently validating the behaviour of the system after optimizations have been applied. Furthermore, some quality-of-life details that have changed required us to revision the system documentation.

Analysis

As a mid-term goal, we aim to provide incremental analysis of our benchmarking metrics. While currently, we can only reliably process runs that have been normally (or abnormally) terminated, we see the possibility of incrementally analysing ongoing runs, or any data source yielding our key metrics, as a huge opportunity to increase our operational flexibility. All in all, this approach entails building completely new features for our pipeline. A first effort to accomodate incrementally incoming data points has been undertaken.

Open Sourcing

A very involved and exhaustive documentation and visualization effort has been undertaken to make the data flow through our key benchmarking copmonents more accessible. As a result, detailed charts for both our LogObject CLI locli and our workbench have been merged to master.

Nomad backend

While our Nomad backend is reaching completion, and hardware setup is being implemented in collaboration with SRE, we've been adjusting those profiles of our workbench that target CI-oriented workloads to the new backend. Those profiles should demonstrate the full functionality of the nomad cloud backend.

Additionally, we're porting a first deployable version of our model cluster to nomad cloud, which will form the basis for validation of our actual key metrics with regard to those from the existing cluster.

Performance & Tracing Meetup

We held a personal team meetup in Lugano, Switzerland. In an amazing location, and with a great seminar room to focus, we had 2 very productive days together. Being able to discuss live and in colour, we could effectively synchronize on where the team is at, and how we want to develop in the future. Also, it was a great opportunity to finally meet in person.

Offboarding

Last not least we regret that our team lead is leaving at the end of May. Currently, he's handing over all his obligations, which requires reorganisation of team structure, and responsabilities of team members for specific tasks. Serge, we all want to thank you for your excellent and reliable lead; we very much enjoyed the time with you, and wish you all the best for your future endeavours!

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • cardano-base: Include final tests for BLS signature. Further adaptations for KES agent.
  • Sidechains: Implement BLS and JubJub using upstream's macros to merge these curves in halo2curves.

Low level summary

cardano-base

Sidechains

  • Opened PR in halo2curves to include BLS12-381 and JubJub, #38
  • Addition constraint over JubJub merged #10

· 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

This sprint the team had two paper accepted for ICE 2023 (https://www.discotec.org/2023/ice). The event will be held in Lisbon on 19th June 2023. The papers will be published in EPTCS.

Details

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team achieved a number of milestones, including the release of the first mainnet compatible version. Besides this they also addressed inconsistencies in rollback handling, added an architecture page to the website, reducing the size of logs using event IDs. They also had productive discussions with researchers on plans for incremental commits/decommits and had a whiteboard session on DeFi and lending protocols. The goals for next week include completing the validation of the timed transactions feature, exploring stateless observation, refining the Hydra explorer ticket, writing ops instructions and troubleshooting, and implementing the first end-to-end journey for external commits.

What did the team achieve this week

  • Released first mainnnet compatible version 0.10.0
  • Addressed inconsist handling of rollbacks #784
  • Added architecture page and fixed haddock links on our website #838
  • Opened a new hydra head on mainnet
  • Talked with researchers on initial plan for incremental commits/decommits
  • Had a Whiteboard session on DeFi and lending protocols
  • Reduced size of logs using event ids #859
  • Published the monthly report for April

What are the goals of next week

  • Complete validation of timed transactions feature #196
  • Explored stateless observation and refined hydra explorer ticket #696
  • Write ops instructions and troubleshooting #569 and improve logs
  • Have a first end-to-end journey for external commits implemented #215

· 2 min read
Marcin Szamotulski

High level summary

We started working on a new way to switch between root & ledger peers (see below). We continued to work on eclipse-evasion. We merged changes to Handshake contributed by Galois Inc. We made improvements to our tests (fixed a flaky test, added cddl specs for NodeToNodeVersionData and NodeToClientVersionData). We improved our CI and automated the process of releasing new package version to CHaP.

Detailed summary

We continued to work on testing eclipse-evasion.

We came up with an idea to limit how full node wallets relay on root peers (currently operated by IOG, in future also CF and Emurgo). We designed a switch to use ledger peers if the node tip is close enough to the current time. For more details see #4530.

We merged changes to the handshake mini-protocol which allow one to query server's node-to-node / node-to-client parameters. We are grateful to Galois Inc. for implementing it, #4256 and #4538. We published new version of packages to CHaP chap-#253.

We added DiffusionError wrapper. Thanks to it, ouroboros-consensus will not duplicate diffusion errors messages in the log, #4537.

We fixed an issue which caused one of our tests to be flaky, #4515.

We added cddl tests for NodeToNodeVersionData and NodeToClientVersionData: #4540, #4544 (in review).

We wrote scripts which will help us release packages as well as verify that we released all the package necessary to build the newest set of packages, #4542.

We renamed the consensus startup tracer and make sure it doesn't log ExitSuccess exceptions, consensus-#71.

We reviewed PR which adds RawBearer API, #4395.

We made series of improvements to our CI:

  • #4539: we don't need to install cryptographic libraries in CI;
  • #4545: Javier Sagredo (consensus) cleaned up CI after consensus moved to a new repo;
  • #4546: we switched to use GitHub merge queues;
  • #4549: we made it possible to trigger building haddocks manually;
  • #4553: we fixed and enhanced caching of building dependencies.