Skip to main content

· 3 min read
Michael Karg

High level summary

  • Benchmarking: The peformance investigation into the compiler switch to GHC9 is ongoing. Additionally, a roadmap for implementing Consensus QTAs has been developed.
  • Infrastructure: Our workbench has undergone some refactoring to seamlessly integrate its profiles into all available backends.
  • Tracing: Optimization of the new tracing system is ongoing and yielding good performance results.
  • Nomad backend: We developed a new feature for the nomad backend which allows pinning deployments to specific machines.

Low level overview

Benchmarking

Our analysis of the GHC9 build of cardano-node has produced several locations in the code base where the new compiler seems to miss opportunities for optimization. Our hypothesis is, that those can account for the difference in resource usage we observe when benchmarking with a full cluster run. Instructing the compiler on how to perform the optimizations which GHC8 apparently applied out of the box requires further investigation.

In an effort to define Quantitative Timeliness Agreements (QTAs) on a per-component basis, we have coordinated with the Consensus team and developed a roadmap for providing those on consensus level. Making use of the insight that system-level benchmarks allow, we intend to set up and calibrate a benchmark that can reliably predict a regression or optimization for select metrics before needing full integration into cardano-node. This will help tremendously in various ways: catching regressions much earlier, localizing them much easier, avoiding repeated component integration and much shorter feedback cycle.

Infrastructure

We have worked on seamless integration of our benchmarking profiles into the many available backends that the workbench provides. The goal was to be backend-agnostic, to guarantee that all benchmarking run artifacts be structurally identical as far as their file name, format and location are concerned. This lead to refactoring work and has already landed in master.

Tracing

Much effort went into further optimization of the new tracing system. After working on configuration to align both new and legacy tracing system with regard to their trace frequencies, we could uncover some increase in resource usage. This occurred for corner cases under very heavy load. These cases have been addressed already, and do now surpass the legacy tracing system in terms of performance.

Nomad backend

For reliable benchmarking results it is vital to introduce as few confounding factors as possible when performing runs. This includes hardware and network topology. The nomad backend has been outfitted with a mechanism to pin the nomad job for some node in our benhcmarking cluster to a specific machine instance. This greatly increases confidence in the metrics observed from a run.

Furthermore this feature will detect any change in the underlying hardware or topology so it can be taken into account. The new feature has been merged to master.

· One min read
Iñigo Querejeta Azurmendi

High level summary

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

  • Sidechains: First version of snark-based ATMS
  • mithril: Full node verifier
  • kes_agent: Keep progress, and prepare CIP and CPS
  • CIPs and community: Finishing BLS12-381 CIP and working on a KECCAK CIP

Low level summary

kes_agent

Mithril

  • Final review of the implementation of Full Node Verifier #939. Included benchmarks and further tests.

Sidechains

  • Schnorr signature implemented
  • ATMS signature implemented
  • First benchmarks show that for the committe size we expect, we need 2^21 constraints.

CIPs and community

  • Addressed some review comments in #PR506
  • Worked with the communityt on #PR524 to include Keccak as part of the next Plutus release.

· 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 teams have been working on finalising their ICE papers for publication in EPTCS, formalising concensus, and investigating chain sync.

Details

  • Preparing final versions of ICE papers

  • Reviewing the chain sync design and documentation

  • Refactoring the thorn calculus

  • First draft of Praos specification

  • Developing bounding factors on timeouts

· One min read
Franco Testagrossa
Sasha Bogicevic

High-level summary

This week the Hydra team accomplished some nice progress. They secured the network layer further by implementing authentication of the messages between the peers in the Head protocol. In the process they also managed to separate HeartBeat messages from the protocol ones which somewhat improved the quality of code in Hydra. The team also finished work related to sending only transaction ids in ReqSn messages, fixed an issue in the smoke tests, and improved benchmark publishing on the website.

What did the team achieve this week

What are the goals of next week

  • Spike on performance improvements of event sourced persistence #913
  • Add new endpoint for submitting client transactions
  • Remove commit from internal wallet

· One min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements, supporting CI improvements, and general environment maintenance.

Some notable recent improvements include:

  • Improved cardano-node entrypoint handling to allow for clean restarts in the Nomad environment
  • Explorer component updates
  • Spongix caching server rewrite for R2 Cloudflare support and various performance improvements

Lower level summary

Cardano-node

Cardano-ogmios

Cardano-ops

  • Improve storage resize script, workaround systemd node signal handling, rescale p2p relays: cardano-ops-compare

Cardano-rosetta

Cardano-world

Spongix

  • Spongix caching server rewrite for Cloudflare R2 backend support plus misc improvements: spongix-simple-branch