Skip to main content

· 2 min read
Jared Corduan

High level summary

Much of the work the past two weeks involved integration efforts, cleaning up and debugging some serialization issues, adding tests, and work on large projects that are still ongoing. We also released a CIP this week that aims to make the ledger a registered CIP category.

Lower level summary

Ledger evolution CIP

We published a CIP that will make the Cardano ledger a registered category of the CIP process.

Serialization issues

We had previously thought that we had found a serialization problem with the redeemers, but it turned out to just be particularly confusing code. We have now clarified the issue for the future.

See pull-3263, pull-3269, and pull-3268.

Starting in protocol version 9, we will no longer accept duplicate keys in CBOR maps.

See pull-3277.

New tests

We added a new property test suite for some of our custom containers.

See pull-3270.

Progress on a better cost model serialization situation.

We are still working our way through issue-2902. Towards this end, we are now properly gating the new flexible encoders until version 9.

See pull-3274.

Nightly tests

We are still experimenting with moving more CI actions to GitHub actions.

See pull-3276.

Constraint based generators

We continue to add to our proof of concept for constraint based generators. See the previous ledger update for more information about this project.

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team had a monthly review meeting with their stakeholders, contributors and interested people from the community. The monthly repot for January 2023 is a digest of the things presented and also includes a summary of the meeting. The Hydra specification was getting discussed and the team is incorporating suggested changes of reviewers. Last but not least, they compute and publish script information on every PR and also on the website now.

What did the team achieve this week

  • Had the monthly review meeting with a broader audience
  • Published the monthly report for January 2023
  • Reviewed the spec and discussed individual aborts with researchers
  • Compute and publish script information along benchmarks on every PR and website

What are the goals of next week

  • Add rollback section to Hydra spec, update pictures and publish it as part of repository
  • Discuss bigger spec findings (full minting policy, individual aborts, split fanout) as change/pull requests on the spec in the repository.
  • Groom & plan actions required for a maintainable Head explorer + break down align gaps feature.

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team released a new 2302.0 distribution that activates the optimization of the snapshot digest computation on the signer and aggregator nodes. They have implemented a backward/forward compatibility mechanism for handling seamless soft updates of the Mithril networks without using synchronous updates when possible. The team also worked on the proof of concept to rely on an on-chain transaction to synchronously trigger the era switch of all the signer and aggregator nodes.

Finally, they finished upgrading the devnet, fixed the flakiness issues in the end-to-end tests of the CI, and upgraded the SPO documentation to set up a Mithril signer node.

Low level overview

  • Released the new distribution 2302.0
  • Implemented a backward/forward compatibility mechanism for API messages #688:
    • Implement the mechanism for the signer registration #689
    • Implement the mechanism for the signature registration #693
    • Implement the mechanism for epoch settings #695
    • Implement the mechanism for certificate pending #696
    • Implement the mechanism for certificate #697
    • Implement the mechanism for snapshots list #698
    • Implement the mechanism for snapshot #699
    • Update enforcement of API version with Semver #705
  • Completed the PoC implementation of backward compatibility with protobuf #677
  • Completed the PoC implementation of backward compatibility with avro #678
  • Completed the PoC to Read/Write transaction on chain for Era activations #672
  • Completed the upgrade Cardano devnet to 1.35.4 #523

· 3 min read
Damian Nadales

High level summary

During the past two weeks, the consensus team finished the testing activities around the UTxO-HD prototype. This is a very important milestone which will enable us to run system-level tests and benchmarks, as well as start refactoring and cleaning the prototype. Regarding our Genesis workstream, we elaborated a roadmap that gives an indication of the remaining work. We also continued our work on benchmarking chain-sync-jumping. We also continued working on improving the way we handle blocks from the future, and advancing the integration of the new VRF and KES crypto.

Workstreams

UTxO HD Prototype

As the prototype is nearing its completion, it was important to have enough confidence that we will be able to move additional parts of the ledger state onto disk. We worked together with the Ledger team to elaborate a sketch on how the UTxO-HD design would accommodate the migration of additional data from memory to disk. This gave us enough confidence that the current architecture will be extensible in the future.

On the testing front, we added property-based tests for the UTxO-HD type classes.

We also enabled disabled components, and addressed several technical debt issues:

  • Implement splitSized anti-diff split (#4269), and integrate it into consensus (#4273).
  • Renaming of peekVal to peekMDBVal (#7).

We ran ad-hoc benchmarks for syncing a chain from scratch and replaying. We found a race condition in the LMDB backing store, which we fixed. After the fix we were able to successfully run these benchmarks. The results were published by this pull request.

We used our db-analyser tool to benchmark the cost of reading keys and flushing values to disk. The following plot shows the duration of these disk operation in relation to the main ledger operations, where we can see that the cost of the former are comparatively low. The spike at the beginning of the graph is when, at the start of the Shelley era, the entire UTxO set is flushed to disk.

UTxO-HD read and flush benchmarks

After months of hard work adding tests for the prototype, we are ready to run end-to-end tests on the node, and system level benchmarks. This signals a very important milestone for the UTxO-HD workstream 🎉.

Genesis

We elaborated a high-level decomposition of the remaining work for Genesis. We also continued benchmarking the chain-sync-jumping happy-path.

Technical debt

We continued working on improving the way we handle blocks from the future.

Support

We completed the mapping of Crypto to HeaderCrypto and body Crypto. HeaderCrypto is moved to cardano-protocol-tpraos. We created a draft pull request to facilitate compiling consensus.

· 2 min read
Jordan Millar

2023-01-25 - 2023-02-07

High level summary

General clean up (error message improvement) and focus on CI maintenance. Multiple pools now supported in the cardano-cli query stake-snapshot command.

Completed

docs

CI & project maintenance

Developer experience

cardano-cli

cardano-api

cardano-node

cardano-testnet

In Progress

CI & project mainteance

cardano-cli

cardano-api

cardano-node

cardano-testnet