Skip to main content

· One min read
Marcin Szamotulski

High level summary

Recently QA found a bug in P2P code, which results in busy loops. We added one fix to 1.35.6 release, another one will likely be part of next release. The first one is already included in ouroboros-network-0.3.0.1 release. These bugs could only affect nodes which are out of sync and thus should not impose risk on well maintained nodes on mainnet. We also advertise to deploy at most one of the relays as a P2P node, which shields from possible consequences.

We recently finished design phase of eclipse evasion and we started implementing it (see issue #3886 for progress).

Galois finished implementing Handshake extension which will allow to query network protocol versions (see pr #4256).

We also recently released a newer set of network packages to be integrated with cardano-node master branch, this includes:

* monoidal-synchronisation-0.1.0.2
* cardano-client-0.1.0.2
* network-mux-0.3.0.0
* ouroboros-network-api-0.1.0.0
* ouroboros-network-protocols-0.2.0.0
* ouroboros-network-testing-0.2.0.1
* ouroboros-network-mock-0.1.0.0
* ouroboros-network-framework-0.3.0.0
* ouroboros-network-0.4.0.0 (it doesn't not yet include the fix we included
in `0.3.0.1`)

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team closed several gaps to align the Hydra scripts implementation further with the specification. This also resulted in a slight improvement on Hydra script size and costs. They consequently analysed the asymptotic complexity of collect and fanout and how they relate. Also plutus-tx profiling toolchain was evaluated and set up for future improvements on Hydra on-chain performance. In discussions with researchers and internal auditors, they also uncovered next steps on further securing the Head protocl using a "full" minting policy.

What did the team achieve this week

  • Closed several gaps to align script implementation with specification #452
    • Allow contest only once #680
    • Optimization through head output at index 0 #700
    • Value is preserved #702 + optimized exact value equality #709
  • Analysed asymptotic complexity of some of our scripts and set up profiling toolchain to #721
  • Fixed our tooling around the Haskell language server
  • Discussed full minting policy with researchers
  • Started grooming “what we need for mainnet” on this idea ticket and milestone

What are the goals of next week

  • Implement full minting policy
  • All remaining protocol discrepancies are implemented or groomed as individual features
  • Ideally release 0.9.0 with updated scripts
  • Discuss what we need for mainnet (milestone planning)
  • Redraw transaction graphs for specification (upon feedback)

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2304.1 distribution that enables the backward/forward compatibility mechanism implemented for seamlessly rolling out soft updates to Mithril networks. They completed the implementation of the era reader trait that powers the era switch behavior. The team finalized the development of the era reader adapter that retrieves era activation markers from transactions on the Cardano chain. They also completed the relational design of the aggregator store.

Finally, they created new SPO nodes on the Mithril networks and upgraded the Cardano node to version 1.35.5 on their devnet and infrastructure.

Low level overview

  • Released the new distribution 2304.1
  • Fixed a bug that prevented some signers to sign with 2304.0-prerelease #716
  • Completed the implementation of an EraChecker that checks if an era is active #708
  • Completed the implementation of an EraReader that gathers era activation data #709
  • Completed the implementation of an EraReader adapter with on chain transaction as source #710
  • Completed the relational design of the aggregator store #476
  • Completed adding a new SPO on the testing-preview network #729
  • Completed the upgrade of the Cardano node to 1.35.5 #725
  • Fixed flakiness in the CI #734

· 2 min read
Damian Nadales

High level summary

We continue refactoring the UTxO HD prototype while we wait for the system level benchmarks. We have created a new repository that contains the anti-diff packages used in this prototype.

On the Genesis front, we are preparing another meeting with the researchers to audit the implementation design, and we continued working on basic tests and simplifications.

During the past two weeks we also introduced two new tools. One for dumping CBOR encoded blocks to JSON, and another to serve a local immutable DB.

Workstreams

UTxO HD Prototype

We are in the process of refactoring the UTxO HD prototype, while we wait for the system level benchmarks to confirm if the performance of the prototype is satisfactory.

We also set up a repository for the anti-diff package, which required us to refactor the code, write documentation, and prepare a release to CHaP.

Genesis

We worked on basic tests for the Limit on Eagerness property of Genesis. We also introduced further robustness and simplifications in the Genesis Density governor. Finally, we developed a presentation to engage again with the researchers on our Genesis implementation design.

Technical debt

Fostering collaboration

We are in the process of polishing the ouroboros-consensus documentation site, which we will use a the entry point for Consensus related documentation. The first version will not be complete, but we plan on systematically improving it.

Support

We added a tool to ouroboros-consensus-cardano-tools which allows to dump the Chain DB blocks or any given CBOR encoded blocks as JSON.

We also added another tool that serves an existing immutable DB via BlockFetch and ChainSync. This tool can help in assisting our local benchmarking efforts (for instance Genesis' ChainSync jumping prototype).

· 2 min read
Jordan Millar