Skip to main content

Performance & tracing update

· 3 min read
Michael Karg
Performance and Tracing Team Lead

High level summary​

  • Benchmarking: We've performed and analysed first benchmarks with GHC9.2 builds. Additionally we have developed an early indicator for how build config changes might reflect on metrics from our model cluster.
  • New tracing: Collaboration with Galois led to the new tracing system to be equipped with a re-forwarding mechanism.
  • Nomad backend: Porting the 52 node model cluster to nomad cloud is ongoing, with the focus on deployment and health checks.

Low level overview​

Benchmarking​

The first set of runs with GHC9.2 as a build platform are in. We've discovered a significant difference in resource profile usage compared to GHC8.10. Further investigation uncovered the need for benchmarking another parameter change in the build configuration: As it stands, the ghc-bignum package is using the Haskell native-backend as a default. We strive to benchmark a build with the gmp-backend next.

A variant of our forge-stress local benchmark has been set up to serve as an early indicator for the resource usage profile we'd expect to observe on the model cluster. This provides us with a much tighter feedback loop, as local run duration is way shorter. This indicator is specific to changes in the configuration of build and the runtime systems, and will be of great support when evaluating different compiler versions or RTS flags incrementally.

Tracing​

The hub of the new tracing system cardano-tracer is designed with a fixed output behaviour, which is limited to various logging options. Thanks to the contribution from Galois, that design is now extended to be able to re-forward all, or a pre-filtered portion, of traces from the node in a configurable manner. This will enable downstream applications to directly receive the set of trace values relevant to their logic, without any additional cost for the node itself at all.

Nomad backend​

We're currently working out the details of efficiently deploying and monitoring a fleet of 50+ nodes, along with job definitions for tracing and transaction generation. Scaling up to those many instances, and monitoring an ongoing benchmarking run required us to fine-tune communications with the nomad server.

Related to that, the new cloud backend will provide a monitoring and health-checking mechanism which is far more flexible and offers more detailed insight than the previous iteration in cardano-ops. The backend will enable you to formulate very specific conditions for an ongoing run to be considered healthy, and offer automation of certain actions should these conditions not be met.

Goedel Team Update

· One min read
James Chapman
Head of Formal Methods

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 has been working on final revisions for the pre-proceedings versions of two ICE 2023 papers.

Details​

Hydra Team Update

· 2 min read
Sebastian Nagel
Hydra Team Lead

High-level summary​

This week, the Hydra team accomplished several important tasks. They held their monthly review meeting and drafted the report for May. They made progress on implementing the first end-to-end journey for external commits using "Option A" for normal UTxOs, while still considering "Option B". The team also integrated a Spanish translation contributed by the community, created micro-benchmarks for transaction validation and deserialization, and made improvements to hydra-node's version reporting. Last but not least, they implemented the ability to commit multiple UTxOs to a head at once.

What did the team achieve this week​

  • Held the monthly review meeting (recording + slides) & drafted the report for May.
  • Have a first end-to-end journey for external commits implementing “Option A” for normal UTxOs #887 (still considering “Option B”).
  • Integrated the spanish translation #866.
  • Created micro-benchmarks for transaction validation and deserialization #884.
  • Improve hydra-node –version reporting on non-released builds #849
  • Some minor CI improvements following up last weeks changes.
  • Allow commit transactions with multiple UTxO #774.

What are the goals of next week​

  • Investigate and re-open our team-internal head on mainnet.
  • Improve and provide regular benchmarks for Hydra #186.
  • Complete external commits with script UTxOs #215.
  • Authenticate network messages #727.
  • Add hydra as tool to developr platform #872.

Ledger Team Update

· 3 min read
Jared Corduan
Ledger Team Lead

High level summary​

The ledger team made progress on the conway ledger era. In particular, the design and implementation of the new certificates is near complete, we refactored some of our data structures to be able to support DReps, we cleaned up the serialization format, and renamed things to make clearer the differences with Shelley.

The team also completed integration work for the next node release, namely 8.1.0. And, as always, we continue to address technical debt.

Low level summary​

Conway progress​

  • pull-3408 - Improve conway delegation certificates
  • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
  • pull-3426 - Add DRep to internal data struture (UMap)
  • pull-3425 - Improve witness logic needed for conway
  • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
  • pull-3421 - Rename DCert -> TxCert
  • pull-3454 - conway CDDL minor fixes

Improve testing​

  • pull-3403 - Add Plutus script context golden tests

Integration work​

  • pull-3410 - Update chaps index
  • pull-3416 - Bump cardano-ledger-alonzo-test version
  • pull-3414 - Bump cardano-ledger-shelley-test minor version
  • pull-3420 - Bump cardano-ledger-shelley-ma-test version
  • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

Technical debt​

  • pull-3409 - Unit test - no such thing as a reference datum
  • pull-3407 - Fixup release process documentation
  • pull-3404 - Create TotalDeposits events during all eras
  • pull-3402 - Fix broken references in the Shelley spec
  • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
  • pull-3432 - Add an example on how to bump up versions in the changelog
  • pull-3440 - Revert back to the group serialization for ProtVer for PParams

Network Team Update

· One min read
Marcin Szamotulski
Network Team Lead

High level summary​

We continued working on eclipse-evasion. We also analysed and fixed a bug when using DNS names in local root peers. We continued working on engineering blog post about P2P. We released a new version of packages for cardano-node-8.1.0 release.

We improved our CI, removed obsolete scripts add extra validation which checks if CHANGELOG.md files were updated.

We also improved release scripts.

Detailed summary​

  • Eclipse evasion: #4462
  • Local root peers bug fix: #4559
  • Release to CHaP: #4573
  • CI improvements: #4572
  • Release script improvements: #4573