Skip to main content

· 3 min read
Alexey Kuleshevich

High level summary

This update contains mostly improvements to quality of Conway era implementation and tooling that we use for testing Ledger. Major Conway bugs that were discovered and squashed are:

  • PParamsUpdate proposals will now correctly use DRep thresholds for ratification
  • Treasury withdrawals are now properly enacted.
  • Corrected snapshotting and DRep Stake Distribution Pulser initialization
  • Delegation to non-existent Stake pool is no longer possible

Other important quality of life improvements are addition of reusable interfaces for an ordered set OSet and ordered map OMap. Which allowed us to disable duplicate certificates and proposals in a transaction. As a precursor to PlutusV3 integration, a serious reorganization of Plutus related functionality was performed.

Conway related additions that are noteworthy: Conway Ledger events, disallowing voting on expired proposals, addition of Anchor to Constitutional Committee resignation proposals.

Significant improvements have been made to a specialized "Imp" test library that allows us writing concise stateful unit tests for verifying the Ledger logic. Serious progress has been made on the conformance testing, where we can now interface with Haskell generated code from the Agda specification. Serialization testing has been extended to increase binary conformance coverage.

Low level summary

Conway

  • pull-3808 - Enhance CommitteeMembersState query to return quorum and NoConfidence
  • pull-3801 - Fix epoch rule and tests
  • pull-3803 - Fix delegation validation
  • pull-3759 - Reshuffle things to the DRepPulser incorporates some snap shot things
  • pull-3779 - Prevent duplicate certs and proposals
  • pull-3794 - Added anchor to resign certs
  • pull-3797 - Cleanup JSON instances for Conway governance
  • pull-3848 - Plutus modules restructure
  • pull-3840 - Fix anomalies in Deposits in the Conway Era
  • pull-3856 - Add governance related ledger events
  • pull-3825 - Prevent voting on expired GovActions
  • pull-3831 - Treasury withdrawal fix
  • pull-3791 - Use a Data.OMap.Strict to replace ProposalsSnapshot
  • pull-3836 - PParamsUpdate enactment fix
  • pull-3846 - Revert argument order swap.

Testing

  • pull-3782 - Move ImpTest to Shelley testlib
  • pull-3842 - Imp improvements
  • pull-3844 - Add mappings to Agda types
  • pull-3853 - Fix strange assertion failure, which hides real Block too big problem.
  • pull-3809 - CDDL roundtrip testing
  • pull-3832 - Treasury withdrawals tests
  • pull-3839 - Added cardano-ledger-conformance
  • pull-3841 - Add sha256 to cardano-ledger-executable-spec

Improvements and releasing

  • pull-3843 - Add ...WithLogs versions of evalScripts and friends
  • pull-3795 - Bump plutus to 1.15
  • pull-3798 - Bump urllib3 from 1.26.17 to 1.26.18 in /doc
  • pull-3799 - Changes needed for 8.6 release
  • pull-3807 - Add invalidBeforeL and invalidHereAfterL functions
  • pull-3819 - Fixups needed for a release
  • pull-3829 - Post release CHANGELOG version bumps
  • pull-3830 - Bump aeson to 2.2
  • pull-3833 - Backport release cardano-ledger-conway-1.10.1.0
  • pull-3828 - Add changelog for node release 8.6

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team continued working on completing the adaptation of the Mithril client as a library. They progressed in decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept, achieving the implementation of a very basic working demo with a peer-to-peer publish-subscribe (pub-sub) mechanism. Additionally, the team continued working on the deterministic computation of the UTXO/transactions set from the immutable files.

Finally, they resolved the naming issue of the Docker package responsible for storing images of the new Mithril client CLI, and continued addressing a performance issue associated with the 'release-mainnet' aggregator.

Low level overview

  • Worked on the issue Prototype a P2P relay with libp2p #1300
  • Worked on the issue Light Wallet: Release mithril-client library #1311
  • Worked on the issue Light Wallet: Compute deterministic Cardano UTxO/transactions set PoC #1283
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Client Docker package is incorrect #1322

· One min read
Damian Nadales

High level summary

This week the Consensus team made progress on two fronts: the question of survivable eclipse duration, which is part of our work supporting Genesis delivery, and how to improve the handling of blocks from the future. Regarding the UTxO-HD branch, we managed to run a node with legacy blocks, which is syncing with mainnet, up to including Alonzo. We also investigated a regression in mempool snapshotting, which was ultimately solved by a Ledger update, and will be fixed in the upcoming Node 8.6 release.

· One min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team kept working on decentralizing the Mithril networks with the peer-to-peer (P2P) networking proof of concept. They progressed with the adaptation of the Mithril client as a library, and worked on its full WASM compatibility in a proof of concept. The team kept working on the deterministic computation of the transactions from the immutable files, and fixed some unreachability issue on the release-mainnet aggregator.

Finally, they implemented new Docker images that build the Mithril nodes on the 'devnet' faster and fixed some regressions in the Mithril client CLI.

Low level overview

  • Worked on the issue P2P Networking - Proof of Concept #1300
  • Completed the issue Build mithril-common and mithril-client in WASM PoC #1284
  • Completed the issue Fix devnet Mithril Docker images [#1272](https://github.com/input-output-hk/mithril/issues/1272
  • Worked on the issue Light Wallet: Release mithril-client library #1311
  • Worked on the issue Compute deterministic Cardano UTxO set PoC #1283
  • Worked on the issue release-mainnet aggregator is unreachable #1310
  • Completed the issue Client regressions in snapshot list and download #1321

· 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 writing a paper on performance modelling

Details

  • completing work on chain sync mini-protocol

  • outline for JLAMP journal paper submission

  • analysing timeouts