Skip to main content

Mithril Team Update

· 4 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team continued implementing new succinct proofs. The team completed the SNARK pre-aggregation primitives in the STM library, began preparing the SNARK prover witness, and continued adapting the certificate chain for SNARK aggregate verification key. They also made significant progress on the SNARK circuit refactoring, completing the error handling and type consistency tasks while continuing work on decoupling the Midnight library and aligning naming. In addition, they refactored the prototype recursive circuit's state transition functions and continued the full review of the recursive circuit prototype, the technical report for the recursive Halo2 circuit, and the impact assessment of SNARK on Mithril protocol security.

The team also continued work on the new certification for Cardano blocks and transactions, including the prover and the client library implementation. They completed the integration of Mithril explainers into the Cardano Developer Portal website and continued work on static builds for Mithril nodes.

Finally, they fixed a slowness issue affecting the import of Cardano blocks and transactions on dev aggregators, improved the DMQ node setup documentation, and tested the DMQ node 0.3.0 pre-release.

Low level overview

Features

  • Completed the issue SNARK pre-aggregation primitives in STM library - Phase 2 #2943
  • Completed the issue Refactor SNARK circuit - Error handling #3035
  • Completed the issue Refactor SNARK circuit - Type consistency #3036
  • Completed the issue Refactor SNARK circuit - Midnight library decoupling #3037
  • Completed the issue Refactor the prototype recursive circuit state transition functions #3069
  • Completed the issue Integrate Mithril into the Cardano developer documentation website #3012
  • Worked on the issue Full review of recursive SNARK circuit prototype #2982
  • Worked on the issue Prepare technical report for recursive Halo2 circuit #2981
  • Worked on the issue Impact of SNARK on Mithril protocol security #2803
  • Worked on the issue SNARK aggregation primitives: Prepare prover witness #2887
  • Worked on the issue Refactor SNARK circuit - Naming alignment #3038
  • Worked on the issue Adapt certificate chain to support SNARK AVK #2811
  • Worked on the issue Compute the Lottery Target Value in MerkleTreeSnarkLeaf #3068
  • Worked on the issue Implement new prover for Cardano Blocks and Transactions #2987
  • Worked on the issue Implement Cardano Blocks and Transactions in client library #3031
  • Worked on the issue Implement static build of Mithril nodes in CI #2989

Protocol maintenance

  • Completed the issue Improve DMQ node setup documentation #3062
  • Completed the issue Prepare upgrade to Rust 1.94.0 #3061
  • Worked on the issue Cardano blocks and transaction import very slow in dev aggregators #3050
  • Worked on the issue Enhance protocol security page on website #2703
  • Worked on the issue Test DMQ node 0.3.0 pre-release in Mithril nodes #3053
  • Worked on the issue Remove v1 backend for Cardano database in client library and CLI #3080

Ledger Team Update

· 2 min read
Alexey Kuleshevich
Ledger Team Software Engineer

High level summary

Through some extra testing we've identified and fixed a few benign bugs. We've also identified and implemented another restructure in the ledger state that improves performance and will further simplify LedegrHD implementation. Besides that we've also made further progress on these initiatives:

Low level summary

Features

  • PR-5575 - Introduce gov/committee/v0 canonical namespace
  • PR-5584 - Use AccountId for stake pools
  • PR-5566 - Tighten PParam lenses
  • PR-5591 - Extras for working with maps
  • PR-5595 - Version restriction
  • PR-5596 - Remove SUBUTXOS rule
  • PR-5579 - Support gov/canonical/pparams/v0 namespace
  • PR-5589 - add notes on Praos slot leader election for historic reasons
  • PR-5585 - Subsume delegations into active-stake
  • PR-5544 - SUBLEDGER implementation

Testing

  • PR-5587 - Set scriptIntegrityHash to 0 to match the behavior of Agda in conformance tests
  • PR-5590 - Fix nightly nothunks tests for snapshot

Infrastructure and releasing

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team continued implementing new succinct proofs. They completed signer authentication for SNARK verification keys, calibrated precision for lottery target value computation, and aligned domain separation tags as part of the SNARK circuit refactoring. Progress also continued on SNARK pre-aggregation primitives, improved error handling within the refactored circuit, the full review of the recursive circuit prototype, and the technical report for the recursive Halo2 circuit.

Additionally, the team finalized proof routes for Cardano blocks and transactions in the aggregator REST API and continued preparations for the next distribution release. They advanced the integration of Mithril into the Cardano Developer documentation site, added support for upgrading the Cardano node without requiring a new Mithril distribution, and completed the upgrade to Cardano node v.10.6.

Finally, they fixed a performance regression in the transaction proof route and worked on a slow import issue on dev aggregators.

Low level overview

Features

  • Completed the issue Support for authenticated signer registration for SNARK #2915
  • Completed the issue Implement proof route for Cardano Blocks and Transactions in aggregator REST API #2988
  • Completed the issue Refactor SNARK circuit - Domain Separation Tag alignment #3022
  • Completed the issue Calibrate precision and Taylor expansion iterations for Lottery Target value computation #3034
  • Worked on the issue Implement SNARK pre-aggregation primitives in STM library - Phase 2 #2943
  • Worked on the issue Full review of recursive SNARK circuit prototype #2982
  • Worked on the issue Prepare technical report for recursive Halo2 circuit #2981
  • Worked on the issue Refactor SNARK circuit - Error handling #3035
  • Worked on the issue Experimental blst-Jubjub #2772
  • Worked on the issue Release 2608 distribution #2967
  • Worked on the issue Integrate Mithril into the Cardano developer documentation website #3012
  • Completed the issue Support upgrade of Cardano node without new Mithril distribution #3058

Protocol maintenance

  • Completed the issue Upgrade to Cardano 10.6 #2790
  • Completed the issue Some unit tests are flaky with future_snark feature #3017
  • Completed the issue Update throttling parameters of Cardano blocks and transactions import #3047
  • Completed the issue Transaction proof route performance regression #3056
  • Worked on the issue Cardano blocks and transaction import very slow in dev aggregators #3050
  • Worked on the issue Enhance protocol security page on website #2703
  • Worked on the issue Improve DMQ node setup documentation #3062

SRE Team Update

· 2 min read
John Lotoski
Service Reliability Engineer

High level summary

The SRE team continues work on Cardano environment improvements and general maintenance.

Some notable recent changes, updates or improvements include:

  • For this biweekly period, SRE has been heavily engaged in support activity for the new USDCx service, now publicly announced here.

  • The Dijkstra network was respun to facilitate new genesis parameter optimizations.

Repository Work -- Merged

Acropolis

acropolis PR#739:

  • Create GitHub Actions for omnibus workflow, including mithril bootstrapping to a target epoch at which point integration tests and a smoke test are run. The workflow is scheduled as well as manually triggerable.

acropolis PR#744:

  • Modify tests to not wait for keyboard input if a CI environment is detected.

acropolis PR#745:

  • Add Cargo cache usage for CI GitHub Actions.

USDCx-infra

master:

  • SRE contributed work to date.

Repository Work In Progress -- PRs and Branches

Hydra Team Update

· 2 min read
Noon van der Silk
Software Engineering Lead

What did the team achieve?

  • Fixed a race-condition bug on decommits #2500
  • Fixed bugs/stuck node issue around commits #2491
  • Resolved issues users were having around computing time in contracts on the hydra-node #2162
  • Fixed bug around deposits and chain rollbacks #2488
  • Improve error reporting for missing script witness #2507
  • Fix infinite AckSn loop bug related to decommits/commits #2510
  • Add a few additional logging outputs aroud chain sync status #2483, #2393
  • Great progress on partial fanout #1667

What's next?

  • Continue work on partial fanout
  • Enable running the end-to-end tests on public testnets #2482
  • Continue fixing incremental commit/decommit issues found under high transaction load #2519 (thanks Delta DeFi team!)
  • Get more structure in our benchmarks #2439
  • Support the upcoming Dijkstra Era #2495
  • Release version 1.3.0