Hydra 🐲
🌄 Introduction
Hydra is the layer-two scalability solution for Cardano, which aims to increase the speed of transactions (low latency, high throughput) and minimize transaction cost.
This repository contains the proof-of-concept implementation for the Hydra Head
protocol. It is a developer preview that
we've put together, marching towards a production ready solution. It contains a
hydra-node
, which runs a simplified (coordinated) Hydra Head protocol,
connects to other hydra-nodes, interfaces the Cardano blockchain and provides an
API to clients such as the included example terminal user interface hydra-tui
.
🚨 Mainnet Availability 🚨
The Hydra Head protocol version 0.10.0 or newer is compatible with the Cardano mainnet, which means it is possible to run a hydra-node on mainnet for testing purposes.
Before running a hydra-node
to take part in the Hydra Head protocol,
developers are strongly encouraged to review the known issues in
the documentation in order to understand the current limitations and the
possible consequences.
By using Hydra Head protocol version 0.10.0 or newer, you understand the protocol is in development and that use of the hydra-node on mainnet is entirely at your own risk.
You also acknowledge and agree to have an adequate understanding of the risks associated with use of the Hydra Head protocol version 0.10.0 or newer and that all information and materials published, distributed or otherwise made available on Hydra.Family and Hydra Github Repository is available on an ‘AS IS’ and ‘AS AVAILABLE’ basis, without any representations or warranties of any kind. All implied terms are excluded to the fullest extent permitted by law. For details, see also sections 7, 8 and 9 of the Apache 2.0 License.
🚀 Getting started
The quickest way to get a hydra-node
running is to use our docker
images.
docker pull ghcr.io/input-output-hk/hydra-node
docker run --rm ghcr.io/input-output-hk/hydra-node --help
More information (including a demo) available on user manual 📖!
🌈 Features
Proof of concept:
- Coordinated Hydra Head protocol
- Single Head per hydra-node
- Network statically configured, direct TCP connections
- WebSocket, message-based API Server
- Terminal user interface client
- Cardano-node integration via Direct connection
- Running on testnet
- Persisted Head state
Later:
- Audited and mainnet ready
- Multiple Heads per hydra-node, managed via API
- Support for external wallets (e.g. hardware wallets)
- Optimistic Head closure and incremental de-/commit protocol extension
- Relay-capable, mesh network
🤝 Contributing
The best way to contribute right now is to provide feedback. Give the demo a test drive and have a look at our documentation. Should you have any questions, ideas or issues, we would like to hear from you:
- #ask-hydra on the IOG Discord server
- create a Github Discussion or Issue
- or ask on Cardano StackExchange using the
hydra
tag
When contributing to this project and interacting with others, please follow our Contributing Guidelines and Code of Conduct.
Thanks for visiting and enjoy ❤️!