This is a monthly report on the progress of the ๐ฒ Hydra and ๐ก Mithril projects since July 2024. This document serves as both preparation for and a written summary of the monthly stakeholder review meeting, announced on our Discord channels and held on Google Meet. This month, the meeting took place on 2024-08-28, using these slides and you can see the recording here.
Mithrilโ
Issues and pull requests closed in August
Roadmapโ
Here is an update on our current roadmap:
- Cardano transactions signature/proving MVP #1457: the feature is finalized and the last step to completion is to release on the
mainnet
. - Cardano Stake Distribution certification #955: the feature is finalized and the last step is to release on
preview
,preprod
andmainnet
. - Mithril signature diffusion with Cardano network layer PoC #1837: the proof-of-concept is completed.
- Decentralization of signature orchestration #1777: we have started implementing the feature with some preliminary works.
- CIP for Mithril signature diffusion through Cardano network #1775: the draft CIP has been published on the Cardano foundation CIPs repository and is under review.
Distributionsโ
We have released the new Mithril distribution 2430.0
. This distribution includes several critical updates and enhancements:
- Support for Cardano node
9.1.0
- Support for Cardano transactions certification in
release-preprod
andpre-release-preview
- Bug fixes and performance improvements.
Future distributionsโ
We plan to release new distributions in September following the Chang hard fork:
2436
:- Activation of the certification of Cardano transactions in the
release-mainnet
network - Activation of the certification of Cardano stake distribution in
pre-release-preview
,release-preprod
, andrelease-mainnet
.
- Activation of the certification of Cardano transactions in the
Protocol statusโ
mainnet
Cardano stake distribution certificationโ
We have completed the implementation of the Cardano stake distribution certification with Mithril and are currently preparing for the rollout of this feature to production:
- We have implemented a new type of data certified for the latest snapshot of the Cardano stake distribution done by the Cardano node at the end of each epoch.
- Under the hood, we use a Merkle tree representation of the stake distribution and sign its Merkle root.
- The Mithril clients (library, CLI and WASM) have the capability to download and verify a snapshot of the Cardano stake distribution.
- We are preparing to activate the feature in the
release-preview
,release-preprod
, andrelease-mainnet
networks with the release of the next Mithril distribution. - We have created documentation and some example code implementation for developers.
Hydraโ
Issues and pull requests closed in August
Notable updates on our roadmap this month include:
- Incremental decommits, Conway support fixes, and more were released in 0.18.0
- New landing page, SSL support, and bug fixes around transaction pruning were released in 0.18.1
- Incremental commits (coming in a 0.19 release) have pivoted to a deposit-based scheme based on open discussions (thanks @GeorgeFlerovsky!)
- Ready to shift ledger to Conway when hardfork is complete #1338
- Settled on Partial Fanout as a good solution to a few known problems
- Initial work on a suite of network-resiliance tests #1552
- The Hydra Doom demo yielded several ideas that need to be refined into features
Hydra Doomโ
At the Rare Evo event in Las Vegas, we showcased the Hydra Doom demo, a technology demonstration of Hydra where users could play the 1993 id software game Doom and for each frame of the game, a smart contract transaction was submitted to a Hydra head which recorded game state, user inputs, and validated game state transitions (as a proof of concept, using only some minor logic pertaining to the movement of the player and dying in-game).
People could connect remotely via https://doom.hydra.family or in person on two custom-made arcade cabinets we had constructed for the occasion. Each game session contributed 35 transactions per second. In aggregate, we processed 106 million transactions with Hydra during the 78 hours of operation, which is more than the entire history of Cardano mainnet. The peak was around 7,200 tps.
The demo was very positively received on social media and seems to have rekindled the flames around the Hydra narrative both internally and externally, which hopefully bodes well for both future adoption interest among builders, as well as the prospects of securing funding for the continued development of Hydra from Intersect.
Network tests with fault injectionโ
We have set up a simple yet effective workflow capable of simulating a Hydra cluster under high transaction loads and packet loss network failures.
With this, we aim to consistently reproduce and resolve issues that are causing the head to become stuck, as outlined in #1436.
The workflow specifies a set of high-load scenarios, each of which spins up the same Hydra cluster on devnet
used during the getting started tutorial and injects network faults using Pumba.
The idea is to allow and encourage everyone to experiment with this workflow and collect summary results, which contain details about the performance within the head. Because these tests are performed with the hydra-node
being a 'black box,' it also allows us to explore alternative network stacks as a whole.
New landing pageโ
For the Rare Evo event with the public Hydra doom demo (see above), we also figured it would be a good idea to improve the first impression new visitors get from the https://hydra.family website.
The marketing team at IOG collaborated on creating new content and design for the landing page. In addition to highlighting the key features and explaining the importance of the Hydra Head protocol, the updated landing page also includes an analogy of how Hydra works, using a cargo plane as an example.
The original design included an alternative color scheme using Teal as the primary accent color and Plum as the secondary. An example is included below. Do you think a new color scheme would be appealing or do you prefer the Purple main color as-is? Shoot us a message on Twitter (X) or #ask-hydra on Discord with your thoughts.
Alternative color scheme example
Bug fix: layer 2 transactions during decommitsโ
After releasing the decommit feature that enables users to transfer funds from layer 2 to layer 1 while the head is operational, we quickly identified a bug. When a decommit is pending ( funds have not yet been withdrawn from the head) and a user attempts to create a new layer 2 transaction, the hydra-node attempts to re-apply the pending decommit to the local ledger state, resulting in an error.
We promptly realized that any pending decommit needs to match with the decommit in the new snapshot and should be preserved in the next snapshot(s) until it is observed. Without this fix, our decommit feature would be extremely fragile, so we made sure to quickly draft a failing test and do a proper fix.
This is a pull request that fixes this bug and we also demonstrated this fix in one of our monthly meetings.
Conclusionโ
The monthly review meeting for August 2024 was held on 2024-08-28 via Google Meet, presenting these slides and this recording.
This month we saw demonstrations from both projects about new features and improved testing capabilities. Optimization results and test results underline the teams' commitment to evidence-based engineering. The Hydra Doom demo was a great success and we received good feedback from users and use cases.
While roadmaps have not moved much over the last couple of months, but more re-orientation is likely as plans for 2025 are coming together in the working groups and other Intersect committees.