Skip to main content

· 2 min read
Marcin Szamotulski

Overview of sprint 74

Dropping NonP2P network stack

We are advertising that we will drop the non-p2p network stack. This will happen after the next hard fork. Please comment on the PR if this will be problematic for you. Here's the PR: ouroboros-network#5007.

Node-to-Client versions

We dropped node-to-client versions earlier than version 16, ouroboros-network#5002.

Mithril Design

We completed review how to adopt ouroboros-network for Mithril design. We started to experiment with ouroboros-network in that direction.

Next Cardano-Node release

The next cardano-node release will include the following changes from the networking team:

Typed-Protocols

The integration of ouroboros-network-0.18, which is using the new typed-protocols-0.3 with ouroboros-consensus, was merged, ouroboros-consensus#1223. Integration with cardano-cli and cardano-api was rebased and handed to the release engineer. Integration with ekg-forward was merged: ekg-forward#35.

Genesis

The following changes to support Genesis (both creating big ledger peer snapshots & providing them in a topology file)

Connection Manager

We merged the documentation review of the connection manager, ouroboros-network#5001. We also renamed connection manager methods (as suggested by Neil Davies ([PNSOL])): ouroboros-network#5000.

Outbound Governor

We started to experiment with using FRP to implement the outbound governor in a way that is both easier to maintain and reason about.

· 2 min read
Alexey Kuleshevich

High level summary

Features that were implemented this period are mostly internal improvements to the quality of code. The only feature that stands out from this is the addition of a new query that allows users to learn the default vote for a particular Stake Pool Operator. Much improvement has also happened on the conformance testing side, as well as to the rest of the test suite.

Low level summary

Features

  • pull-4666 - Mismatch for Conway predicate failures
  • pull-4711 - Use Mismatch for Shelley, Mary, Allegra, Alonzo, Babbage
  • pull-4722 - Create specialized newtype VRFVerKeyHash
  • pull-4557 - Define CDDL via Huddle in shelley-ma
  • pull-4733 - Alternative approach to Annotator
  • pull-4735 - Add queryStakePoolDefaultVote state query
  • pull-4737 - Remove deprecated and unused definitions

Testing

  • pull-4718 - Avoid intermittent test failures in constrained-generators
  • pull-4712 - (NonEmpty x) in MemberSpec
  • pull-4713 - Better bootstrap-aware Imp tests
  • pull-4730 - constrained-generators: fix flaky test
  • pull-4729 - Added RewardUpdate spec translation
  • pull-4720 - Add CC removal imptest with UpdateCommittee
  • pull-4728 - Add a balanced TxBody specification
  • pull-4736 - Pass the signature checking function to Agda
  • pull-4719 - constrained-generators: Better shrinking for SuspendedSpec

Infrastructure and releasing

  • pull-4717 - Speedup CI by disabling unnecessary steps
  • pull-4714 - Add changelog entry for cardano-node-10.1
  • pull-4734 - Update index state

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team worked on creating the new distribution pre-release 2445.0-pre. Additionally, they completed recording the aggregator metrics in the event store and implemented stable support for Cardano node v.10.1. The team also kept exploring solutions for signer registration when multiple aggregators are running on a Mithril network.

Finally, they implemented a nightly workflow in the CI to check backward compatibility with previous distributions and started implementing a new status route in the aggregator.

Low level overview

  • Completed the issue Record aggregator metrics in event store #2023
  • Completed the issue Refactor protocol parameters namings in signer/aggregator #1966
  • Completed the issue Docker nightly builds in GitHub Actions #2026
  • Completed the issue Nightly backward compatibility testing with e2e tests #2027
  • Completed the issue Access registered signers for latest epoch in explorer #1689
  • Completed the issue Remove pending certificate from explorer #2025
  • Completed the issue Upgrade to Cardano 10.1.1 #2069
  • Completed the issue Create view for registrations monitoring in aggregator #2067
  • Completed the issue Update Cardano CLI calls to new interface #2072
  • Worked on the issue Release 2445 distribution #2030
  • Worked on the issue Create a new /status route in aggregator #2071
  • Worked on the issue Remove network field from CardanoDbBeacon #1957
  • Worked on the issue Explore Signer Registration Solutions #2029

· One min read
Kostas Dermentzis

· 3 min read
Michael Karg

High level summary

  • Benchmarking: Governance action / voting benchmarks on Node 10.0; performed PlutusV3 RIPEMD-160 benchmarks.
  • Development: Governance action workload fully implemented; generator-based is submission ongoing work.
  • Tracing: New tracing system production ready - cardano-tracer-0.3 released; work advancing on typed-protocols-0.3 bump and metrics naming.

Low level overview

Benchmarking

We've run and analyzed the new voting workload on Node 10.0. This workload is a stream of voting transactions submitted on top of the existing value workload from release benchmarking. The delta in the comparison can claim to demonstrate the "performance cost of voting" in the Conway ledger era. The workload itself is a puppeteer of 10.000 DReps overall, who vote on up to 5 governance actions simultaneously. We made sure these are mutually independent proposals, that vote tallying occurs, and that the actions get ratified and enacted (and hence removed from the ledger). Then, voting moves on to the next actions - keeping the number of actions needing vote tallying stable over the benchmark. We could observe a very slight performance cost of voting; it's deemed to be a reasonable one given the stress we've put the system under.

The results can be found here along with those from release benchmkarks.

Furthermore, we've developed and run a new Plutus benchmark targeting the RIPEMD-160 internal. We've compared the resulting performance observations against other Plutus workloads - both memory-constrained and (same as RIPEMD-160) CPU-constrained. We have concluded that there are no performance risks to that algorithm in PlutusV3, given existing execution budgets, and that it's consistently priced wrt. other CPU-intensive internals.

Development

The voting workload is currently implemented using decentralized submission via cardano-cli on each of our cluster machines. It has proven reliable - and scalable, at least to some extent. We're already working on improvements that reduce the (very slight) overhead of using the CLI for submission. Additionally, we're aiming for a linear performance comparison when submitting twice the number votes per transaction at the same TPS rate - forcing double the work for vote tallying.

Implementation of that workload using the centralized (and much better scalable) tx-generator submission service is still ongoing.

Tracing

Metrics naming is currently receiving a last round of consistency checking, so that it's aligned as closely as possible between legacy and new tracing system. In the process, we're adressing aspects of documentation, and incorporating feedback to define a few metrics in the new system that previously were present in the legacy one only.

For migrating to the new typed-protocols-0.3 API, two of the new tracing system's packages are affected. The work for ekg-forward-0.7 is completed and merged to master - yet to be released on CHaP. Work on the second package, trace-forward, is ongoing.

We've finally released cardano-tracer-0.3, which incorporates all features, enhancements and fixes that have been reported on here over the past months. This release marks 100% production readiness of the new tracing system. We're focusing now on making documentation and example scripts and configs yet more user-friendly for community rollout. We're very much looking forward to receiving feedback - and have time and space reserved to address it, as well as to provide intial support for the migration away from the legacy system.