Skip to content

0.14.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ch1bo ch1bo released this 04 Dec 17:00
· 1811 commits to master since this release
0.14.0
2baae13

Hydra release which makes the hydra network resilient to disconnects, simplifies the layer 1 protocol using inline datums and includes a hydra-chain-observer executable.

⚠️ Warning
There are still several known issues, which are explained in the documentation.

Build artifacts

  • 📦 Linux x86_64 binaries: here
  • 📦 MacOS ARM64 binaries: here
  • 🐋 Docker image: here

Hydra Scripts

Transaction IDs to be used as --hydra-scripts-tx-id when running hydra-node on common networks are now also stored in the repository:

  • preview: 64deee72cd424d957ea0fddf71508429ecb65fea83a041fe9b708fc2ca973a8e
  • preprod: d8ba8c488f52228b200df48fe28305bc311d0507da2c2420b10835bf00d21948
  • mainnet: 3ac58d3f9f35d8f2cb38d39639232c10cfe0b986728f672d26ffced944d74560

Compatible / tested with

  • cardano-node: 8.1.2
  • cardano-cli: 8.1.2
  • kupo: 2.7

Upgrade instructions

This release contains breaking changes of the persistence and on-chain scripts. This means that you'll need to apply the following procedure to upgrade all the nodes running a head:

  1. Close and fanout the head
  2. Stop hydra-node
  3. Remove persistent files stored in --persistence-dir, in particular server-output and state
  4. Upgrade hydra-node to this version
  5. Upgrade cardano-node to compatible version (above)
  6. Start new hydra-node version with new --hydra-scripts-tx-id (above)
  7. Open a new head

Changelog

  • BREAKING Multiple changes to the Hydra Head protocol on-chain:

    • Sign the head identifier as part of snapshot signature and verify it on-chain. This fully addresses security advisory CVE-2023-42806.

    • Switched to using inline datums instead of (optionally) published datums in transactions. #1162

    • Upgraded toolchain to GHC 9.6 and a newer plutus-tx compiler.

  • BREAKING Internal persisted chain state serialization changed when switching to inline datums. Make sure to close heads before and wipe the --persistence-dir before using this hydra-node version.

  • BREAKING Introduced messages resending logic in the Network layer to improve reliability in the face of connection issues. #188 This persists network messages on disk in order to gracefully handle crashes and detects inconsistencies between persisted state and configuration.

  • Increased maximum number of parties to 5. This is possible to small optimizations on the Head protocol transactions.

  • Removed hard-coded deposit of 2₳ from internal wallet. Now the wallet does only use as much deposit for script outputs as minimally needed and reduces the Ada locked throughout a head life-cycle. #1176

  • Clients are notified when head initialization is ignored via a new IgnoredHeadInitializing API server output. This helps detecting misconfigurations of credentials and head parameters (which need to match). #529

  • Removed false positive PostTxOnChainFailed error from API outputs when the collect transaction of another hydra-node was "faster" than ours. #839

  • Hydra node API submit-transaction endpoint now accepts three types of encoding: Base16 encoded CBOR string, a TextEnvelope with CBOR and full JSON. #1111

  • Improved gen-hydra-keys command to not overwrite keys if they are present already. #1136

  • Add a hydra-chain-observer executable to subscribe to a chain and just observe Hydra Head transactions (with minimal information right now). #1158

  • Fixed hydra-tui key bindings for exiting in dialogs. #1159

Contributors

Other contributors to this release: @v0d1ch @abailly-iohk @locallycompact @ffakenz @matiwinnetou @ch1bo

Full Changelog: 0.13.0...0.14.0