Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simple installation packages for Hydra node #1107

Open
abailly-iohk opened this issue Oct 10, 2023 · 0 comments
Open

Simple installation packages for Hydra node #1107

abailly-iohk opened this issue Oct 10, 2023 · 0 comments
Labels
💭 idea An idea or feature request

Comments

@abailly-iohk
Copy link
Contributor

Why

We know from first hand experience that setting up a hydra-node is not a trivial task: Out of the 5-6 pairs of people trying to setup a Hydra Head cluster at RareEvo, only 2 managed to have their nodes setup, and 1 opened a Head. This is of course caused by myriads of issues related to networking, varying OSes, shell, docker, wrong assumptions etc. but it nevertheless demonstrates Hydra (and Cardano) is not a turnkey solution.

To ease the development, deployment, and use of applications and systems based on Hydra requires better packaging so that developers, users, ops can install and use it in matters of minutes instead of hours.

What

Provide integrated "one-click" installation packages for some major OSes such an end-user can have a Hydra Head connected to some other peer up and running in minutes, without any prior knowledge or installation, on top of the 3 standard Cardano networks (preview, preprod , mainnet).

  • The user should be required to do minimal manual configuration and steps, one of which could include sending some "fuel" funds to an address generated by the install process
  • A Hydra-compatible DApp (eg. Implement a chess game in Hydra head #1098) can be run on top of the installed hydra-node in minutes

How

  • Wrap hydra-node, cardano-node, and mithril-client in a single "process" or "installer"
    • Possibly embed all of them as libraries inside a single executable?
  • Use XDG directories to store configuration and DB powering the various processes
  • Generate automatically keys to be used exclusively by the Hydra node
  • Use mithril to prime the cardano network
  • Use canned configuration files and parameters

The trickiest part might be the networking, requiring to ask the user to exchange connection informations with peers, have a directory service to register at, or a STUN-like server redirecting messages. To simplify connectivity using UDP might also be good idea?

@v0d1ch has already done some work on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💭 idea An idea or feature request
Projects
None yet
Development

No branches or pull requests

1 participant