0.14.0
Pre-releaseHydra 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
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:
- Close and fanout the head
- Stop
hydra-node
- Remove persistent files stored in
--persistence-dir
, in particularserver-output
andstate
- Upgrade
hydra-node
to this version - Upgrade
cardano-node
to compatible version (above) - Start new
hydra-node
version with new--hydra-scripts-tx-id
(above) - 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 thishydra-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 anotherhydra-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
- @omahs made their first contribution in #1095
- @cardenaso11 made their first contribution in #1012
Other contributors to this release: @v0d1ch @abailly-iohk @locallycompact @ffakenz @matiwinnetou @ch1bo
Full Changelog: 0.13.0...0.14.0