Skip to main content

Ledger Team Update

· 5 min read
Alexey Kuleshevich
Ledger Team Software Engineer

High level summary

Besides some general improvements and necessary reorganization of testing code here is the list of high level initiatives that we've worked on the last period:

  • Preparation of cardano-node releases:

    We've been working hard on making sure upcoming releases are done in a timely manner. We've identified a couple of issues that needed to be resolved before we could declare cardano-node-10.6.2 a successful mainnet ready release and also discovered a few problems that needed to be taken care of in preparation for the upcoming cardano-node-10.7.0 release and the upcoming intra-era hard fork into protocol version 11. All, but one issue has been resolved. Once the last issue is taken care of, Ledger team will unblock the upcoming cardano-node-10.7.0 release.

  • CIP-118 - Nested Transactions:

    We've made progress on declaring some of the Ledger rules for sub-transactions and restructured the way we deal with UTxO update in the Ledger rules to accommodate support of sub-transactions.

  • CIP-159 - Account Address Enhancement - phase 1:

    Required renaming was done in order to reflect promotion of reward accounts to proper accounts. Also a new "balance intervals" field has been added to the transaction body.

  • CIP-165 - Canonical Ledger State:

    Some nice progress can be reported on implementation of Canonical Ledger State with 3 namespaces getting implemented. There are still many more namespaces to go, but this initial work defines the overall structure that will be adopted for the rest of the Ledger State namespaces.

Low level summary

Features

  • Preparation for cardano-node releases:

    • PR-5569 - Fixup ledger for next release
    • PR-5565 - Prevent decoding Version higher than 11
    • PR-5580 - Fix preservation of a DRep delegation bug
    • PR-5555 - Add Generic instances for ApplyTxError type family
    • PR-5516 - Improve snapshot creation performance
    • PR-5576 - Remove assertions and no longer needed StakePoolParams from SnapShot
    • PR-5545 - Fix laziness in map and mapWithKey for VMap
  • CIP-118 - Nested Transactions:

    • PR-5531 - SUBGOVCERT rule impementation
    • PR-5534 - SUBDELEG rule implementation
    • PR-5542 - SUBGOV implementation
    • PR-5557 - Update UTxOState in UTXO rule rather than UTXOS
  • CIP-159 - Account Address Enhancement - phase 1:

    • PR-5528 - Rename RewardAccount to AccountAddress
    • PR-5530 - Add Semigroup/Monoid for Withdrawals/DirectDeposits
    • PR-5546 - Add AccountBalanceIntervals to DijkstraEraTxBody
  • CIP-165 - Canonical Ledger State:

    • PR-5540 - Canonical Ledger State: introduce blocks/v0 namespace
    • PR-5570 - Implement gov/constitution/v0 namespace
    • PR-5548 - Introduce utxo/v0 namespace for canonical ledger state
    • PR-5552 - Introduce CanonicalCoin type
  • General maintenance and improvements

    • PR-5536 - Dijkstra:CDDL: Remove (un)registration certs
    • PR-5543 - Change Predicate failure with UTxO to NonEmptyMap
    • PR-5539 - Improving re exports

Testing

  • PR-5547 - Update state of Conway formal spec in the README
  • PR-5558 - Accomodate for costmlds change to a Map in the Ledger spec
  • PR-5505 - Added custom generator to address, enabled some Huddle tests
  • PR-5553 - Move Arbitrary instances to cardano-base
  • PR-5571 - Add Imp test to check failure of phase-1 when bootstrap addr + scripts

Infrastructure and releasing

  • PR-5550 - Fix sha256 of cardano-cls SRP stanza in cabal file
  • PR-5561 - Fix nix shell

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team focused on implementing new succinct proofs. The team worked on pre-aggregation SNARK primitives in the STM library, completed bridging between CPU and circuit implementations, and worked on lottery target pre-computation. They also continued to adapt the certificate chain for SNARK-friendliness and to implement signer authentication for SNARK verification keys.

Additionally, the team continued work on the new certification for Cardano blocks and transactions. This included implementing the prover, along with the proof routes in the aggregator REST API, and the diffusion of signing configuration.

Finally, they continued working on static builds for Mithril nodes, fixed some CI bugs, and implemented support for Cardano node v.10.6.2.

Low level overview

Features

  • Completed the issue Implement SNARK pre-aggregation primitives in STM library - Phase 1 #2792
  • Completed the issue Hash to curve CPU/circuit discrepancy for message signature in Schnorr signature #2993
  • Completed the issue Implement signable builder for Cardano Blocks and Transactions #2908
  • Completed the issue Implement signing configuration for Cardano Blocks and Transactions #2971
  • Worked on the issue Compute Lottery Target Value for SNARK #2974
  • Worked on the issue Implement SNARK pre-aggregation primitives in STM library - Phase 2 #2943
  • Worked on the issue Remove off-circuit module in Halo2 circuit #2945
  • Worked on the issue Prepare refactoring of SNARK circuit #2990
  • Worked on the issue Full review of recursive SNARK circuit prototype #2982
  • Worked on the issue Adapt certificate chain to support SNARK AVK #2811
  • Worked on the issue Support for authenticated signer registration for SNARK #2915
  • Worked on the issue Implement proof route for Cardano Blocks and Transactions in aggregator REST API #2988
  • Worked on the issue Implement new prover for Cardano Blocks and Transactions #2987
  • Worked on the issue Implement static build of Mithril nodes in CI #2989
  • Worked on the issue Integrate Mithril into the Cardano developer documentation website #3012

Protocol maintenance

  • Worked on the issue Upgrade to Cardano 10.6 #2790
  • Worked on the issue Fix snapshot-converter breaking change in 10.6.2 #3010
  • Worked on the issue Fix crates and npm packages publications GitHub workflows #2970
  • Worked on the issue Enhance protocol security page on website #2703

Network Team Update

· 2 min read
Marcin Szamotulski
Network Team Lead

Overview of sprint 107.

Cardano Node 10.5.4

We rolled out cardano-node-10.5.4 release.

Leios

PR / IssueStatus
Mux Leios Simulationmerged
Mux egress prioritisationin progress
Mux egress fairnessresolved

Ouroboros-Network

PR / IssueStatusNotes
StandardHash with NFData constraintmerged
Tracing Librariesmerged
[tx-submission robustness and testing enhancements][pr#5315]in review
RNG handling in SRV lookups for public root peersin reviewcontribution by Saviour Uzoukwu
cardano ping implemented with ouroboros-networkblocked

Documentation

Maintenance

DMQ-Node

PR / IssueStatus
SigSubmission v2in review
Integration with cardano-tracerin progress
[Set the correct magic field][pr#30]merged
[Churn test][#5303]in review

Consensus Team Update

· 2 min read
Damian Nadales
Consensus Team Lead

High level summary

  • Continued work on Node 10.7 integration (Treasury Funding Initiative 17: Maintenance and Support):
    • Integrated network packages up to ouroboros-network-0.22.6 (#1819, #1865).
    • Integrated latest ledger changes (#1762).
    • Integrated kes-agent-1.1 (#1819) (Treasury Funding Initiative 9: KES Agent).
  • Node improvements (Treasury Funding Initiative 17: Maintenance and Support):
    • Improved mempool behavior for local clients:
      • Downgraded hard timeouts to soft timeouts, improving user experience for wallets and other local client integrations (#1856, #1857, #1858).
      • Made it easier for downstream tracers to scrutinize mempool rejection details (#1847).
      • Enhanced observability by exposing the reason for chain switches in the ChainSel tracer (#1826).
    • Added support for the new GetDRepDelegations ledger state query in NodeToClientV_23 (#1794).
    • Fixed an exception due to a mix-up of resources in the V2 LedgerDB (#1842).
    • Minor: code cleanup (#1854).
    • Added documentation for the Consensus-Ledger interaction (#1830).
  • Continued Leios prototype development (Treasury Funding Initiative 4: Ouroboros Leios Implementation, MS4.6):
    • Refactored to use EbHash instead of EbId for cleaner design (#1859).
    • Simplified to monomorphic types for more rapid iteration (#1846).
    • Implemented in-memory LeiosDb for ThreadNet tests (#1837).

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team focused on implementing new succinct proofs. The team worked on pre-aggregation SNARK primitives in the STM library, completed golden master tests of the non-recursive SNARK circuit, and worked on bridging CPU and circuit implementations. They also began adapting the certificate chain for SNARK-friendliness.

Additionally, the team continued work on the new certification for Cardano blocks and transactions. This included implementing the signable builder, along with the artifact and proof routes in the aggregator REST API.

Finally, they worked on static builds for Mithril nodes and fixed bugs in the hash-to-curve implementation of the Schnorr signature.

Low level overview

Features

  • Completed the issue Add golden tests for Halo2 circuit prototype #2912
  • Completed the issue Pallas DMQ publisher keeps open connection to DMQ node #2961
  • Completed the issue Implement artifact routes for Cardano Blocks and Transactions in aggregator REST API #2956
  • Completed the issue Follower aggregator panics in e2e tests in run-only mode #2770
  • Worked on the issue Implement SNARK pre-aggregation primitives in STM library - Phase 1 #2792
  • Worked on the issue Compute Lottery Target Value for SNARK #2974
  • Worked on the issue Hash to curve CPU/circuit discrepancy for message signature in Schnorr signature #2993
  • Worked on the issue Implement signable builder for Cardano Blocks and Transactions #2908
  • Worked on the issue Implement signing configuration for Cardano Blocks and Transactions #2971
  • Worked on the issue Adapt certificate chain to support SNARK AVK #2811
  • Worked on the issue Implement proof route for Cardano Blocks and Transactions in aggregator REST API #2988
  • Worked on the issue Implement static build of Mithril nodes in CI #2989

Protocol maintenance

  • Worked on the issue Enhance protocol security page on website #2703