Skip to main content

· 3 min read
Jared Corduan

High level summary

The Plutus tools team at IOG has started helping the ledger team to build out a user friendly cardano-ledger-api package! A GitHub project will be filled out in the days ahead, people interested in the API can use it to follow along and join in on the conversations.

The ledger team has started using architectural decision records to leave a record of important decisions that the team makes. We will retroactively go back through past decisions and make ADRs for them.

The logic to track individual deposits is now nearly in place. We are prioritizing correctness with our first pull request, and will follow up with performance optimizations and general cleanup next.

Pointer addresses are being deprecated with the Cardano major protocol version 8. See CPS-0002 for more context.

Lower level summary

Cardano ledger API

The Plutus tools team has taken our minimal cardano-ledger-api package and started filling it out and adding much needed documentation. They have also added doctests! In the days to come, the Plutus tools team will map out a lot more work for the API and record it in this GitHub project.

See

Architectural Decision Records (ADRs)

We are now providing more context and leaving a record of important decisions that are made in the ledger. The first ADR explains the very lightweight process.

See

Tracking individual deposits

See ADR-3 for background. We now have the logic in place to track individual deposits, and a host of property tests to make sure that the logic is correct. The current implementation uses more memory than it needs to, and we will address that next, with our hope being to only use one word (8 bytes) per registered stake credential. There is a fair amount of other cleanup needed for general maintainability.

See

Removing pointer addresses

Pointer addresses, which have never seen any real use (there are something like eleven on mainnet), are being deprecated starting at Cardano major version 9. CPS-0002 gives the context. We are disabling them by first preventing transaction outputs containing them from being serialized by the node at the moment we switch to version 9. At the hard fork after that, we will translate the existing few pointer addresses to enterprise addresses.

See

Technical debt

  • pull-3162 - Sometimes we have to put safeguards in place for hard forks which may never be exercised. After we have passed the given hardfork, we are able to clean up the code and simplify our logic. We removed all of the ones that we are currently easily able to.
  • pull-3165 - We improved the type safety of our code while also discovering and fixing a serialization bug.
  • pull-3172 - We removed dead code.
  • pull-3175 - The Allegra and the Mary code used to be coupled in a particular way the we grew to dislike. We made these two ledger eras now uniform with the rest of our code base.
  • pull-3184 - We organized our property testing code.
  • pull-3200 - The Plutus tools teams fixed an outstanding bug in the translation from the ledger state to the Plutus script context.

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team has worked on cleaning up several things in progress after last week's summit. They have extended their model-based testing (MBT) approach with transaction creation & observation #410, solved AcquirePointTooOld problems of the hydra-node with by changing the wallet initialization #439. Also, the Hydra researchers updated the security proofs of the Coordinated Hydra Head, which are bound to be included in the Hydra HeadV1 specification.

What did the team achieve this week

  • Monthly review & report - will also be published on our website #644
  • Extended the model-based testing (MBT) with transaction creation/observation #410
  • Solve AcquirePointTooOld problems with new wallet initialization #439
  • Fixed our hydraw deployments (EC2 instances)
  • Created & discussed ADR21 within tx validity work
  • Received & discussed security proofs of Coordinated Hydra Head (requires more work)

What are the goals of next week

  • Get ADR21 accepted & close tx validity gap in our implementation
  • Complete review & integrate the Hydra tutorial
  • Review latest hydra-pay work
  • Have a LaTeX write-up of the HeadV1 (Coordinated Hydra Head) spec
  • Get Cicero (new CI) working

· One min read
Kostas Dermentzis

High level summary

The DB Sync team prepared a release 13.1.0.0-rc2 which includes many improvements for db-sync, it makes rollbacks and syncing much faster, simplifies the schema, fixes bugs and introduces migrations. This release finalises the objectives that were set for db-sync for the previous 3 months period and part of the syncing speed objective set for the next period Changelog

Lower level summary

  • Branch release/13.1.0.x includes all the improvements related to the release. The release is passing through the testing phase and a number of bugs and issues have been fixed, like #1312 #1311. Also many new unit tests have been added.

  • Part of the release branch is cherry-picked back into master, in a way that it respects the new release and development process, so that it takes into account migrations release process

  • The DB Sync team has also tagged release 13.0.6 which better supports preview and preprod for docker.

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team worked on finalizing their release process by adding new features: publishing their cryptographic library to the Rust community, adding node versions manifest in the release notes, and signing the binaries embedded in the distributions. They deprecated the declarative signer node registration that will be decommissioned in a few weeks. The team also completed the automatic store upgrade process for the signer and aggregator nodes.

Finally, the team continued working on the redaction of the CIP that will allow the decentralization of Mithril by using the Cardano networking layer.

Low level overview

  • Implemented custom Mithril SPOs on testing/pre-release networks #563
  • Deprecated Signer Declarative Pool Id registration mode #585
  • Completed the second stage of the store automatic migration process #600
  • Completed the deployment pipelines to crates.io registry #588
  • Completed automatic generation of nodes/libraries versions manifest in releases notes #599
  • Completed CI/CD handling of PR from forks #597
  • Worked on the CIP design for Mithril piggybacked on the Cardano network layer #586
  • Worked on signing the artifacts released in the distributions by the CI/CD #587
  • Worked on multi-platforms end to end test #601
  • Worked on the refactorizaton of the aggregator multi-signer engine #398

· One min read
Dorin Solomon

High level summary

During the last 2 weeks we did more improvements on our Test Framework, planned the testing of the P2P Single Relay functionality, and also tested some DB-Sync tags.

Workstreams

Framework improvements:

  • moved the System Test CLI Pipelines from BuildKite to Github Actions
  • improved the reporting tools to support the rerun of the failled tests and update of the reports
  • added support for Github API in report-aggregator, so reports will be generated from the GitHub nightly jobs from now on
  • added support for mixed topology - P2P, legacy, mixed topologies
  • planned the P2P Single Relay system test activities
  • added support to start regression tests with PV8 + better selection of tests

DB-Sync:

  • confirmed that DB-Sync release 13.0.5 is compatible with Node release 1.35.4 + Protocol Version 8 (on the Preview environment)
  • tested a couple db-sync tags - 13.1.0.0-rc1, 13.1.0.0-rc2