hydra
hydra copied to clipboard
Hosted Hydra Head, DEMO environment
What & Why
In order to transact with a Hydra head during application development, developers need to set up and deploy a hydra-node network. This requires significant time and effort, which can be reduced by making available a hosted Hydra Head DEMO environment, accessible through a hydra-node API, using well-known public spending keys. The hosted Hydra Head instance would allow clients to query UTXOs in the Head and to submit transactions to the Head.
This DEMO environment will be configured to connect to either a private testnet or a public Cardano testnet, depending on readiness.
Open questions
- confirm the need with application developers
- prevent closing Heads by using the public API
I think priority of this issue should be raised but in order to be useful, it should be reframed as "Dirt Road Hydra-Head-as-a-Service"
Use hydraw instead for this as a more simpler surface to keep hosted / running?
Discovered improvement:
- [ ] Use text envelopes like cardano keys to make it easy to distinguish from any random bytes
- [x] Provide a command line tool to generate hydra keys
More ideas:
- [ ] Extend the TUI (as it is already available on the target) to prepare commit UTxOs and mark UTxOs as fuel
- [ ] Display a HeadId to the TUI (could be the actual policy id)
As @abailly-iohk also mentioned
- [ ] Have the TUI a not allow multiple submissions of
Closeetc. via a client-side pending status.
More things we stumbled over today:
- [ ] Hard to diagnose why head initialization was not shown: Should not discard
InitObservationwhen some keys don't match and have higher-level logic log & ignore instead https://github.com/input-output-hk/hydra-poc/blob/c7c28d6618877ba8b64f244aefb47708586fd391/hydra-node/src/Hydra/Chain/Direct/Tx.hs#L559 - [ ] Optimistic removal of
UTxOfrom theTinyWalletis problematic if an error happens down the line https://github.com/input-output-hk/hydra-poc/blob/c7c28d6618877ba8b64f244aefb47708586fd391/hydra-node/src/Hydra/Chain/Direct/Wallet.hs#L142 - [ ] The ping hostnames are overlapping (i.e. everyone uses
0.0.0.0:5001by default)