input-output-hk / hydra

Implementation of the Hydra Head protocol

Home Page:https://hydra.family/head-protocol/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 implementation for the Hydra Head protocol. Most prominently, 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 using real funds.

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

Get started with the user manual 📖!

🌈 Features

  • Coordinated Hydra Head protocol
  • Single Head per hydra-node
  • Network statically configured, direct TCP connections
  • WebSocket/HTTP-based API
  • Example terminal user interface client
  • Cardano-node integration via Direct connection
  • Locally persisted Head state
  • Commit from any wallet (e.g. hardware wallets)

Later:

  • Incremental de-/commit and optimistic Head closure protocol extensions
  • Modular API via event streaming plugins
  • Automated handling of rollbacks
  • Relay-capable, mesh network
  • Multiple Heads per hydra-node, managed via API

See our roadmap for more details.

🤝 Contributing

The best way to contribute is to provide feedback. Give the demo a spin and have a look at our documentation. Should you have any questions, ideas or issues, we would like to hear from you:

Please follow our Contributing Guidelines and Code of Conduct.


Thanks for visiting and enjoy ❤️!

About

Implementation of the Hydra Head protocol

https://hydra.family/head-protocol/

License:Apache License 2.0


Languages

Language:Haskell 83.3%Language:TeX 10.8%Language:Shell 1.9%Language:Nix 1.4%Language:TypeScript 1.4%Language:HCL 0.9%Language:JavaScript 0.2%Language:CSS 0.1%Language:HTML 0.1%Language:C 0.0%