Skip to main content

Consensus Team Update

· One min read
Damian Nadales
Consensus Team Lead

High level summary

  • Continued work on Node 10.7 integration and release (Treasury Funding Initiative 17: Maintenance and Support).
  • Added defensive programming logic to the mempool (#1831), backported it via a CHaP release for cardano-node 10.6.2 (#1216), and drafted corresponding EKG counters for the 10.6.2 release engineer to use (#6420) (Treasury Funding Initiative 17: Maintenance and Support).
  • Prototyped Leios EB (Endorsement Block) production, advancing the implementation of the Leios protocol (#690). Successfully forged EBs and integrated them with the proto-devnet, complete with Grafana dashboards (Treasury Funding Initiative 4: Ouroboros Leios Implementation, MS4.6).
  • Working on optimizations for the centralized TxSubmission logic (#1444) (Treasury Funding Initiative 17: Maintenance and Support).
  • Released kes-agent and kes-agent-crypto version 1.0 (Treasury Funding Initiative 9: KES Agent, MS9.7).

Mithril Team Update

· 3 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This week, the Mithril team prepared the pre-release for the 2603.1-pre distribution. This version introduces support for the DMQ protocol, preliminary support for decentralized configuration, implementation of the Blockfrost API to fetch stake pool operators' pool tickers and names, and various bug fixes and improvements.

The team focused on implementing the SNARK-friendly STM library, advanced the non-recursive SNARK circuit MVP, and progressed work on pre-aggregation and recursive SNARK circuits.

Additionally, they worked on the new certification for Cardano blocks and transactions, implementing the storage layer, the artifact builder, and the throttled preloader.

Finally, they continued documenting proposals to integrate Mithril and DMQ nodes with Cardano and updating the protocol security page.

Low level overview

Features

  • Completed the issue Implement SNARK-friendly changes in STM library #2795
  • Completed the issue Create SNARK circuit new module in STM #2911
  • Completed the issue Implement Digest for Poseidon hash from Midnight ZK #2942
  • Completed the issue Synchronization of modifications between Halo2 circuit in STM and prototype #2947
  • Completed the issue Create new signed entity type for Cardano Blocks and Transactions #2905
  • Worked on the issue Release 2603 distribution #2830
  • Worked on the issue Document recursive SNARK solution #2767
  • Worked on the issue Update protocol parameters to SNARK friendly values #2813
  • Worked on the issue Implement SNARK pre-aggregation primitives in STM library - Phase 1 #2792
  • Worked on the issue Add golden tests for Halo2 circuit prototype #2912
  • Worked on the issue Avoid panic in AggregateVerificationKeyForConcatenation conversion #2954
  • Worked on the issue Import Blocks and Transactions in new store for Cardano Blocks and Transactions #2907
  • Worked on the issue Implement artifacts builder for Cardano Blocks and Transactions #2955
  • Worked on the issue Add throttling to Blocks and Transactions preloader #2909
  • Worked on the issue Proposals for Mithril/DMQ as optout feature of Cardano #2831
  • Worked on the issue Pallas DMQ publisher keeps open connection to DMQ node #2961

Protocol maintenance

  • Pre-released the new distribution 2603.1-pre
  • Worked on the issue Enhance protocol security page on website #2703

Hydra Team Update

· One min read
Noon van der Silk
Software Engineering Lead

The Hydra team kicks off the new year by with a reinvigorated focus on developer experience. Over the coming months we will be working to improve our performance and observability, while addressing any user-submitted bugs and feature requests.

What did the team achieve?

  • Finished Rasberry PI demo #2353
  • Progress on partial fanout #1468
  • Improved our HTLC demo
  • Finished chain-following improvements #2206
  • Accepted a PR to fix a HTTP endpoint #2445, thanks @leuhk!

What's next?

  • Continue looking into memory improvements #2441, #2422
  • Improve benchmarking #2439
  • Investigate bug with incremental commits #2446
  • Continue work on partial fanout #1468
  • Release version 1.3.0

Ledger Team Update

· 7 min read
Alexey Kuleshevich
Ledger Team Software Engineer

High level summary

Currently there are a few important high level tasks that Ledger team is focused on:

  • Continue working on defining Ledger validation rules for CIP-118 - Nested Transactions:

    One of the major milestones in the last month was actually getting the CIP merged, which means we were able to solidify the design as well as identify a few new and very important use cases that Nested Transactions will bring to the table.

    On the implementation side we've had some very nice progress with full definition of binary format and Haskell representation of a Dijkstra era transaction and its sub-transactions. We've also defined the full Ledger rules structure for Nested Transaction, albeit mostly with placeholder logic for now. Implementation for the logic in those rules is one of the main focus points for the upcoming weeks.

  • Started working on the first phase of CIP-159 - Account Address Enhancement

    This is a very much anticipated CIP, because it will finally allow micropayments in ADA, once released with the Dijkstra era. We have so far defined one of the new fields in the transaction and performed some of the necessary code changes in preparation for this work.

  • Improvements on how CDDL specification is defined and how conformance testing against it is performed.

    We had incredible progress on improving how CDDL is defined. We've performed major refactoring of cuddle, which is the tool that we use for defining CDDL specification. We have designed a very nice interface for writing those definitions that drastically reduces duplication from era to era, thus improving safety of new definitions. Removal of a few bugs in the CDDL specification was a good testament to this effort. Moreover, we added the ability to supply custom value generators, which will allow us to test aspects of CDDL specification that were previously impossible to test due to the limited nature of CDDL expressiveness.

    Furthermore, we just released a new tool antigen, which we are in process of integrating into cuddle, which once complete will let us write negative property tests for Ledger decoders. It might not sound like much, but it will in fact protect us from a whole class of deserialization bugs, such as one that happened on mainnet two months ago.

Besides those major points above, since the last update, Ledger team:

Low level summary

Features

  • PR-5458 - Added Dijkstra UTXO rule and collateral Ptr check
  • PR-5439 - Add Peras certificate to the block body
  • PR-5456 - CDDL with typeclasses: conway
  • PR-5467 - Add optional previous epoch Nonce to BHeaderView
  • PR-5471 - CDDL with typeclasses: Dijkstra
  • PR-5478 - CDDL: Switch to using HuddleSpec everywhere
  • PR-5475 - Change all List to NonEmpty in predicate failures
  • PR-5476 - Add Peras Certificate validation
  • PR-5472 - Update to cuddle 1.1
  • PR-5484 - Fix MultiAsset cddl definition in dijkstra
  • PR-5483 - CDDL: Add HuddleRule1 typeclass for set functions
  • PR-5480 - Skip isValid flag in transaction (de)/serialization
  • PR-5479 - Change all error Sets to NonEmptySets in predicate failures
  • PR-5490 - Dijkstra subtx produced and consumed
  • PR-5464 - Switch minFeeA to CoinPerByte and rename minFee parameters
  • PR-5461 - Swap Mempool/Ledger predicate failures in Dijkstra
  • PR-5485 - CDDL typeclasses with implicit naming
  • PR-5496 - Rename policy_hash to guardrails_script_hash
  • PR-5491 - Nested transactions rules
  • PR-5493 - Change all error Maps to NonEmptyMaps in predicate failures
  • PR-5507 - Rename atadPlutus and atadrPlutus
  • PR-5499 - Switch PoolMetadata.pmHash to ByteArray
  • PR-5518 - CDDL: Remove header_body discrepancy
  • PR-5517 - MemoBytes avoid space leaks
  • PR-5506 - Prevent sub-tx-ids to be spent in the same tx.
  • PR-5519 - Change Version from Word64 to Word32.
  • PR-5523 - Add more constraints on ApplyTxError
  • PR-5524 - Add direct-deposits field to transaction body
  • PR-5522 - Implement events and failures in rules running nested transactions
  • PR-5526 - SUBPOOL rule implementation
  • PR-5512 - Move DelegateeNotRegisteredDELEG from DELEGS to DELEG in Shelley

Testing

  • PR-5459 - Add reverse delegations assertion
  • PR-5468 - Arbitrary instance for DijkstraBlockBody
  • PR-5424 - Add CBOR golden tests
  • PR-5404 - Implement block-submitting Imp functions
  • PR-5392 - Translate all tests from AlonzoBBODY to Imp test
  • PR-5466 - Add Imp tests to cover more cases of active/inactive committee
  • PR-5473 - Update formal-ledger-specification and enable tests
  • PR-5521 - Add Imp test to check that SPO votes are validated against tx witnesses

Infrastructure and releasing

  • PR-5469 - Bump urllib3 from 2.5.0 to 2.6.0 in /doc
  • PR-5495 - Upgrade from ghc 9.12.1 to 9.12.2 nix builds
  • PR-5509 - Bump urllib3 from 2.6.0 to 2.6.3 in /doc
  • PR-5504 - Remove ruby cddl

Mithril Team Update

· 2 min read
Jean-Philippe Raynaud
Mithril Tech Lead

High level overview

This year, the Mithril team continues to prioritize protocol decentralization through the DMQ network, broader protocol adoption, and the introduction of succinct proofs by evolving the STM library with SNARKs.

This week, they focused on implementing the SNARK-friendly STM library, kept developing the non-recursive SNARK circuit MVP within it, and started working on the pre-aggregation SNARK primitives. They also kept working on the prototype of the recursive SNARK circuit.

Additionally, the team prepared for the deployment of the DMQ network by finalizing its infrastructure and node implementation.

Finally, they worked on documenting a proposal to make Mithril and DMQ opt-out features of Cardano, and continued updating the protocol security page.

Low level overview

Features

  • Completed the issue DMQ testing with SPOs on preview #2833
  • Completed the issue Use Midnight ZK backends for Jubjub and Poseidon in STM #2888
  • Completed the issue Update the Midnight library dependency in circuit prototype #2910
  • Worked on the issue Document recursive SNARK solution #2767
  • Worked on the issue Update protocol parameters to SNARK friendly values #2813
  • Worked on the issue Release 2603 distribution #2830
  • Worked on the issue Implement SNARK-friendly changes in STM library #2795
  • Worked on the issue Implement SNARK pre-aggregation primitives in STM library #2792
  • Worked on the issue Create new signed entity type for Cardano Blocks and Transactions #2905
  • Worked on the issue Import Blocks and Transactions in new store for Cardano Blocks and Transactions #2907
  • Worked on the issue Proposals for Mithril/DMQ as optout feature of Cardano #2831

Protocol maintenance

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