Skip to main content

· 2 min read
Damian Nadales

High level summary

The value-only workload benchmarks showed that the mempool forging regression observed in the UTxO-HD branch was fixed by the latest patch. In spite of the higher resource demands, for the metrics of interest (forging, peer-propagation, end-to-end propagation) we see no regression when using the UTxO-HD version of Cardano node, with the in-memory backend.

On the Genesis front the Researchers continue reviewing different aspects of the design, in particular the argument that the Genesis rule will select the Cardano historical chain. We also merged a fix for the Babbage to Conway transition, and released a new version of Consensus.

Genesis

  • We elicited review from the Researchers on a final draft of the argument that the Genesis rule will select the Cardano historical chain (392).

Support

  • We merged a minimal patch that fixes parameter update bug during the Babbage to Conway transition (366).
  • We enabled richer tracers in cardano-node that can be useful in future debugging (384).
  • Esgen continues with his release engineer activities, and created a new Consensus release.

Fostering collaboration

  • We merged a new section into our documentation that explains the existing hard-fork combinator (HFC) interface and its complexities, which are relate do why the Babagge to Conway transition surprised us in this way. This explanation is step one towards improving the HFC interface (369).

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team updated a proposal for implementing Mithril in a light wallet and created a discussion on implementing Mithril in a light wallet to receive feedback and contributions from the community.

They also completed a proof of concept to run a Mithril client in a browser with WASM and worked on enhancing the explorer UI with SPO tickers displayed next to the pool IDs. Additionally, the team finalized a tool for benchmarking aggregator performance over a range of signer and client loads and for visualizing the results of these benchmarks.

Finally, the team added a root page to the aggregator endpoint, created a status page for the Mithril networks, and added a section about KES key rotation in the signer documentation for SPOs.

Low level overview

  • Created the discussion Implement Mithril in a light wallet #1273
  • Completed the issue Run client in browser WASM PoC #1254
  • Completed the issue Benchmark aggregator performances #1220
  • Worked on the issue Add SPO tickers in explorer #1185
  • Completed the issue Add a non 404 status code on the aggregator endpoint #1103
  • Completed the issue Use source attribute in errors #1265
  • Completed the issue Create a SPO checklist for KES keys update #1267
  • Completed the issue Configure status page and alerting #1277
  • Completed the issue Upgrade dependencies #1274

· 3 min read
Marcin Szamotulski

High-level overview of sprint 45

Bootstrap Peers

We started reviewing the bootstrap peers PR, ouroboros-network#4615.

Towards Typed Protocols 0.2.0.0

We discovered a performance regression when using typed-protocols-0.2.0.0, and we started investigating where it comes from. Currently, we see that typed-protocols-0.2.0.0 can outperform typed-protocols-0.1.0.0 when running in isolation with a simple ping-pong protocol, so the regression might be in the new block fetch implementation which comes with typed-protocols-0.2.0.0 See typed-protocols#3.

Tech Debt

We merged two PRs written by Galois engineers:

  • a pull request which refactors the main entry function for P2P, see ouroboros-network#3834;
  • a pull request which reviews usage of unsafe function in the network code based.

Galois also made progress with the following two issues:

IO-Sim

IOSimPOR

We found and fixed a bug in IOSimPOR. We'd like to thank Prof. John Hughes (Quviq AB) for helping us with debugging the issue.

We also provided a more uniform API for IOSimPOR, and added ways to make the debugging similar problems in the future easier.

Technical Details on IOSim refactoring
We removed the usage of `unsafePerformIO` from `IOSimPOR`, which also means removing parallel evaluation of discovered races. We found out that it gives only 25% better performance. In the future QuickCheck will offer running different cases in parallel which should provide better performance as there are no dependencies between the evaluation of different test cases, while schedules are discovered while running which limits the possible gains from running them concurrently. The performance was not the only factor though. When using parallelism in the lazy `ST` monad we'd need to rely on memory guarantees of `STRefs`. In `GHC-9.6` they share the implementation with `IORef`s, but it might not be the case in the future.

IOSim

To prepare for the next release, we consolidate packages taking advantage of the public sublibraries supported now both by cabal and Hackage. This is a work in progress, io-sim#114.

Cardano Newtork Service Assurance

Galois made the following progress:

  • A test run of spinning up a CNSA instance was done, as a result documentation was updated.
  • Based on the IOG code review of the CNSA code, updates to the CNSA code were made.
  • Galois has started the design for adding a CNSA analysis for "fetched bytes over time while node is syncing".

P2P adoption

In the last two weeks, we've seen increase in P2P adoption. P2P relays

The following graphs show several different versions of relays running on the mainnet. The green line NodeToNodeVersionV10.True denotes P2P relays. node versions

Open Source

We upstreamed our FFI bindings to Windows named pipes to Win32 package, the PR was accepted and merged.

We also received an external contribution which enhanced our documentation, see ouroboros-network#4676.

· 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

The team is currently formalising mini protocols and testing the performance analysis tool

Details

  • drafting processs calculus semantics of mini protocol programs

  • testing the new performance modelling tool

  • further work on specification of mini protocols

  • extension of mini protocol framework to support communication of programs with local environments via synchronous channels

· One min read
Franco Testagrossa

High-level summary

This week, the Hydra team mainly focused on having a working new reliability network layer; and specified its expected behavior in a new ADR.

They also revisited the security policy and vulnerability disclosure policy on how to handle security vulnerability within Hydra, and in particular how to handle so-called "Silent fixes".

What did the team achieve this week

  • Updated security policy and vulnerability disclosure policy #1088
  • Adr/network reliability #1082

What are the goals of next week