Skip to main content

· One min read
Carlos LopezDeLara

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team improved Github actions workflows, addressed protocol parameter schema consistency in hydra-node, and made enhancements to log schema tests. They created an Architectural Decision Record (ADR) for Cardano transactions serialization in APIs, moved the hydra-chess project to a dedicated repository, and resolved a bug in quickcheck-dynamic and model tests.

There will be the monthly review meeting with demos on Hydra, Mithril and related projects. If this sounds interesting, join us in Google Meet https://meet.google.com/udc-zgyw-agd next week, January 19 2024 at 17:30 UTC.

What did the team achieve this week

  • Github actions improvements and small fixes to the smoke tests #1242, #1233
  • Fixed protocol parameter schema consistency around hydra-node #1234
  • Log schema tests improvements and fixes #1244
  • Created ADR about Cardano transactions serialisation in our APIs #1215
  • Moved hydra-chess #1237 to a dedicated cardano-scaling organisation repository https://github.com/cardano-scaling/hydra-chess
  • Identified bug on quickcheck-dynamic / our model tests #1239

What are the goals of next week

  • Monthly review meeting (January 19, 17:30 UTC) including several demos (from team and contributors)
  • Do release 0.15.0
  • Improve quickcheck-dynamic model to be more robust and cover more behaviour.
  • Draft POC about backend for a hydra-explorer that can track all heads on-chain.

· One min read
Damian Nadales

High level summary

For the past two weeks the Consensus team:

  • Resumed work on implementing the initialization and internals of the second iteration of the in-memory ledger database.
  • Resumed work on integrating the new ledger database API for UTxO HD.
  • Simplified query versioning for downstream users (863 and 403).
  • Confirmed the cause of missed leadership checks due to ledger snapshots (868).
  • Derived principles for the versioning/declaration of queries, since Conway complicates it (864 and 866).
  • Unblocked the Node Team in the work on rollback-insensitive leadership schedule queries (4765).
  • Drafted the (Pre-Genesis) Bootstrap State Machine (808).

· 4 min read
Alexey Kuleshevich

High level summary

Major Conway related development was the refactoring of how we distinguish Plutus language versions in every era, thus drasticly improving the type safety and getting us much closer to PlutusV3 integration.

There has also been many bug fixes and improvements since the last update. Some important bug fixes are:

  • missing "protocolVersion" field in JSON instance for Babbage and Conway protocol parameters
  • requiring witnesses for DRep registration
  • new committee governance action ratification was implemented incorrectly
  • guard against invalid protocol versions in hard fork initiation proposals
  • failures during updates of Plutus CostModels were not retained
  • fixed the types for some protocol parameters in order to prevent values that are too large
  • serialization and CDDL fixes

A few useful features have been also implemented, like new ledger events, doubling the limit for Url length, consensus query, JSON instances and so on. It was also required for testing to implement a reliable transaction fee estimation function, which is now available not only for testing, but also for cardano-cli.

Low level summary

Conway

  • pull-3915 - Utilize Inject type class for Val's inject
  • pull-3899 - Bring Plutus language version to the type level
  • pull-3917 - Ensure DRepRegistration certificate requires a witness
  • pull-3921 - Fix committee validation in Ratify
  • pull-3935 - Fixed a bug in Conway.Rules.Gov
  • pull-3956 - Allow 128 byte Url and DnsNames for decoder version atleast 9.
  • pull-3954 - Fix how we update CostModels
  • pull-3947 - Change the type of some pparam fields to align with how they are represented in Consensus
  • pull-3951 - Conway genesis DRep injection
  • pull-3961 - Switch ContextError to an injective type family from a data family
  • pull-3963 - Abstract getWitsVKeyNeeded
  • pull-3933 - Improve cbor serialization of TxWits in Conway
  • pull-3971 - ToJson instances for context error
  • pull-3977 - Added GetAccountStateQuery
  • pull-3975 - Add policy hash protection to TreasuryWithdrawals and ParameterChange

Testing

  • pull-3892 - Translate DRep expiry test from ConwayFeatures to Imp GovSpec
  • pull-3913 - Add certs to conformance testing
  • pull-3911 - Add a Preds to generate valid GovActionStates.
  • pull-3929 - Improve comment on unit_interval in cddl
  • pull-3950 - Use discard to avoid bad traces for fixOutput
  • pull-3935 - Add some Imp tests for HardForkInitiation.
  • pull-3964 - Ignore thunks in utxosDeposited
  • pull-3962 - Add estimateMinFeeTx
  • pull-3976 - Introduce accurate min fee calculation function: calcMinFeeTx

Improvements

  • pull-3930 - Change type of mintedTxBodyL to PolicyID
  • pull-3924 - Split type classes out of eras Core module
  • pull-3934 - Type safety bugfixes
  • pull-3949 - Add FromJSON BabbagePParams instance
  • pull-3953 - Babbage / Conway PParams JSON serialization
  • pull-3946 - Epoch interval instances
  • pull-3932 - Add ledger event TxUTxODiff
  • pull-3969 - Add missing stake key deposit in formal spec
  • pull-3973 - Move functionality of Cardano.Ledger.Pretty to Test.Cardano.Ledger.Generic.PrettyCore

Releasing

· 2 min read
Jean-Philippe Raynaud

High level overview

This week, the Mithril team worked on implementing the client in the explorer to enable direct verification of certificates from the browser. They also addressed the configuration issue in the signer node service, which occasionally resulted in signers not registering their keys after a restart. Additionally, the team kept implementing a mock aggregator to strengthen Mithril client tests in WASM, continued working on threat modeling and risk analysis for P2P networking, and progressed with the devnet upgrade to support the Conway era.

Finally, they worked on enhancing node communications between Mithril and Cardano and completed the upgrade of the Cardano node topology used in the Mithril networks' infrastructure.

Low level overview

  • Published a development blog post Mithril signer service new configuration
  • Completed the issue Simplify Mithril client CLI download command #1406
  • Completed the issue Make all infra Cardano nodes use P2P topology #1405
  • Completed the issue Implement ChainObserver adapter configuration in aggregator #1396
  • Completed the issue Fix signer node service setup #1404
  • Worked on the issue P2P threat modeling and risk analysis #1350
  • Worked on the issue Implement a fake standalone aggregator #1397
  • Worked on the issue Implement the mithril client WASM package in the explorer #1409
  • Worked on the issue Light Wallet: Implement browser tests with fake aggregator #1407
  • Worked on the issue Activate babbage/conway eras on devnet #1425
  • Worked on the issue Upgrade Cardano node to 8.7.2 #1410
  • Worked on the issue Create a test network on SanchoNet #1173
  • Worked on the issue Enhance Mithril/Cardano node communication #1315