/hydra

Implementation of the Hydra Head protocol

Primary LanguageHaskellApache License 2.0Apache-2.0

Hydra 🐲

Implementation of the Hydra scalability protocols.

🌄 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:

When contributing to this project and interacting with others, please follow our Contributing Guidelines and Code of Conduct.


Thanks for visiting and enjoy ❤️!