Skip to main content

· 3 min read
Michael Karg
  • Benchmarking: We worked on adjusting our infrastructure to the new 8.0 release branch and performed a (very) early run.
  • New tracing: We're profiling the new tracing system for minimizing its resource footprint and guarantee high throughput.
  • Analysis pipeline: Variance analysis both for reporting and for serving as a point of comparison has been merged.
  • Infrastructure: A library for Plutus scripts will be integrated in our tooling and benchmarking profiles. Also, a profile family aimed at the tracing systems has been added.
  • Nomad backend: Various specializations of the backend are currently being implemented, along with streamlining credentials management.

Benchmarking

We have adapted our benchmarking cluster to the requirements of the 8.0 release branch. Testing runs of a very early feature branch for 8.0 helped us localize an important issue in collaboration with the other teams. We look forward to gathering preliminary metrics for 8.0 soon.

Tracing

Analysis of resource usage profiles of both the legacy and new tracing system, with and without trace forwarding, have lead us to gather very detailed profiling data for each possible setup. This is to ensure we keep resource usage within the node to an absolute minimum, while still providing the highest possible throughput of data for forwarding to cardano-tracer.

Additionally, we've worked on a very practically-oriented document targeted at end users of the new tracing system. It provides tested step-by-step instructions for tunneling trace forwarding from a node to cardano-tracer via an easy to manage system service, which will match the production setup of most users.

Infrastructure & Analysis

General

Variance analysis as a full-fledged entity in our tooling has been merged. Not only is this type of analysis now part of our reporting pipeline - variance analysis can be fed back and serve as an additional point of comparison.

Furthermore, we've created a profile family for the workbench that's specifically aimed at measuring and comparing tracing system configurations.

Plutus library

We opened a PR containing a new package for benchmarking - an extendable library that holds all Plutus scripts we use in our benchmarking profiles. This will enable us in the future to iteratively work on customizing any given script, and the way is called in the context of a specific profile. It is a refinement of current affairs, where we have additional build inputs solely to generate a static script file tied to an external commit.

Nomad backend

The nomad backend is being specialized in three ways: using a podman driver locally, using nomad agents supporting nix installables, and using nomad cloud agents. This supports having a common surface independent of the actual backend driver being used. In addition, vault retrieval and management of cloud access credentials is being improved to minimize any friction for the backend user.

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

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

  • Mithril: Started looking into full-node verifier
  • cardano-base: BLS12-381's PR merged. Creating test-vectors for verifying basic pairing properties.
  • KES agent: Blockers overcome. Reaching a first MVP level of the KES-agent.
  • Sidechains: Included BLS12-381 & JubJub to halo2curves
  • MuSig2: Final modifs to C version.

Low level summary

Mithril

  • Started designing how a full-node verifier would work. Issue comming in the next couple of weeks.

cardano-base

  • BLS12-381 branch merged PR#266.
  • Testing strategy for BLS bindings:
    • Test-vectors for Groth16, and simple BLS signatures ready.
    • Test-vectors with different library, and created by different engineer.

KES agent

  • Resolved issues of circular dependency
  • Got rid of separate DSIGN and DSIGNM, we now have DSIGN over mlocked keys, but the phantom type is the same.
  • Opened a PR for raw bearer branch in ouroboros network PR4395
  • Resolved a bug where the agent node did not properly closed connections
  • Updated version of IOSim allowed us to finish a first version of KES agent.

Sidechains

  • Included BLS12-381 curve to our branch of halo2curves
  • Included JubJub to our branch of halo2curves

MuSig2

  • Minor reorg PR#42
  • Started including fuzz testing for deserialisation PR#

· 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 has been working on final drafts of two papers for internal review and planning next steps of analysis of consensus design refiniments.

Details

  • Preparing final draft of DeltaQSD algebra paper for internal review

  • Preparing final draft of verifying design refinements for distributed system design for internal review

  • Planning next phase of consensus design refinement analysis

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra continued work on finishing mainnet compatibility. The semi-automated smoke tests and some missing documentation is still preventing from calling that fully done. They fixed smaller issues and made a step in the Head protocol more robust. Besides development, they met with interested people from the community who want to get started collaborating on communication and marketing materials.

What did the team achieve this week

  • Groomed and followed-up on GetUTxO user request discussion #797
  • Fixed hydra-node crashes after forks #560
  • Made collectCom more robust and aligned with spec #786
  • Completed configurable API feature #380
  • Met potential contributors about Hydra communication and marketing materials
  • Versioned documentation: we have a unstable bleeding edge version available as well now, seperate from the last released version

What are the goals of next week

  • Follow-up backlog and roadmap clean-up
  • Complete mainnet compatibility feature #713 (documentation updates)
  • Integrate Hydra specification into repository #693

· 2 min read
Jared Corduan

High level summary

We are still heavily involved in work related to preparing the next release. The other main thing we have worked on is experimentation about how we will handle the DRep stake distribution for CIP-1694 in the conway ledger era. Lastly, we merged a fix for node-4826 into our main branch (there will be a post-mortem shortly).

Low level summary

Support for the next release

  • pull-3363 - Fix problems relating to Arbitrary instances used by consensus.
  • pull-3361 - Remove the alonze genesis from the conway genesis.
  • pull-3360 - Translate bad pointer addresses to valid ones in conway.
  • pull-3357 - Fix a bug relating to zero valued ADA in the script context.
  • pull-3356 - Added needed instances (Arbitrary and Serialization) for conway integration.
  • pull-3345 - Added helper functions for the CLI.
  • pull-3342 - Fix a bug with a CLI helper function (having to do with deposit tracking).

Experiments for DRep stake distribution

Adding another stake distribution to the ledger state presents some new challenges. We would like to be able to use the current stake distribution at the epoch boundary for DRep voting so that people can always vote themselves in time for any proposal. To this end, we have a prototype of an incremental computation based on the incremental lambda calculus, together with tests and benchmarks (which are very promising). See pull-3344.

Additionally, more of the ledger state is going to need to be rearranged to accomodate the new incremental computations. We have two draft PRs up for possibles solution. See pull-3353 and pull-3364.

Technical debt and bug fixes

Documentation changes

  • pull-3354 - Rename "optional datums" with "supplemental datums" in the alonzo spec.
  • pull-3352 - Add a section to the Shelly errata about the individual deposit tracking.
  • pull-3351 - Further clarify the details regarding the script integrity hash.
  • pull-3350 - Some cleanup of the Babbage spec.