0.9.0
Pre-release🐲 We renamed the repository from hydra-poc to hydra!
This release features a hydra-node with fully specified behavior of on-chain hydra-plutus scripts and off-chain head-logic, decreased costs for opening/closing a Head and scalable contestation deadline semantics.
This release contains several breaking changes and you'll need to apply the following procedure to upgrade all the nodes running a head:
- Close the head
- Stop
hydra-node - Remove persistent files stored in
--persistence-dir, in particularserver-outputandstate - Upgrade
hydra-nodeversion - Start new
hydra-nodeversion
Only when this procedure has been applied to all Hydra nodes can you open a new head again.
Changes to hydra-node
-
BREAKING Changes to the API:
- Removed
TxSeenandTxExpiredserver outputs. Use theTxValidandTxInvalidresponses instead. - All participants now see
TxValidfor all valid transactions (it replacesTxSeen). - Renamed
ReadyToCommit -> HeadIsInitializing - Added a
headIdto most server outputs. #678 - Added a
timestampand a monotonicsequence number. #618
- Removed
-
BREAKING Addressed short-comings in
hydra-plutusscripts #452 and improved their performance / reduced cost #652, #701, #709. Roughly the cost of transactions according to our benchmarks changed:- Init increased by 10%.
- Commit reduced by 50%.
- Collect reduced by 30%.
- Close reduced by 0.2-0.3₳
- Contest reduced by 0.1-0.2₳.
- Abort reduced by 0.1-0.3₳.
- Fanout reduced by 0.2-0.3₳.
-
BREAKING Change the way contestation period and deadline are handled:
- There is a new hydra-node flag
--contestation-periodexpressed in seconds to control the close tx validity bounds as well as determine the contestation deadline. For example, with--contestation-period60s, the node will close the head 60s after submitting the close transaction and other parties will have another 60s to contest. This means the deadline may be up2 * --contestation-periodafter a close transaction. #615 and ADR21 - If hydra-node receives a
inittransaction with not matching--contestation-periodthen this tx is ignored which implies that all parties need to agree on the same value for contestation period. - Removed
contestationPeriodfrom theInitAPI request payload. - The deadline get's pushed by
--contestation-periodon each contest transaction. #716
- There is a new hydra-node flag
-
Change the way the internal wallet initializes its state. #621
- The internal wallet does now always query ledger state and parameters at the tip. This should fix the
AcquireFailureissues.
- The internal wallet does now always query ledger state and parameters at the tip. This should fix the
-
Added
NoFuelUTXOFounderror next to the already existingNotEnoughFuel. Previously the node would fail withNotEnoughFuelwhen utxo was not found. NowNotEnoughFuelis used when there is not enough fuel andNoFuelUTXOFoundwhen utxo was not to be found. -
Added support have
hydra-nodeto start following the chain from genesis by setting--start-chain-from 0. -
Added script sizes to
hydra-node --script-infoand published transaction cost benchmarks. -
Changes to the logs:
- HeadLogic
Outcomeis now being logged on every protocol step transition. - Added intermediate
LastSeenSnapshotand extendedRequestedSnapshotseen snapshot states. - Changed wallet-related logs of
BeginInitialize,EndInitializeand addedSkipUpdate.
- HeadLogic
Changes to hydra-cardano-api
- BREAKING Remove
Hydra.Cardano.Api.SlotNomodule. - BREAKING Replace
fromConsensusPointHFwithfromConsensusPointInModeandtoConsensusPointHFwithtoConsensusPointInMode. - Re-export new
AcquiringFailuretype fromcardano-api. - Add
fromPlutusCurrencySymbolconversion function. - Introduce new
Hydra.Cardano.Api.Prettymodule and move functionsrenderTx,renderTxWithUTxOandrenderTxsfromhydra-nodepackage to this new module.
Other changes
-
hydra-clusterexecutable can be used to provide a local cardano "network" with--devnetargument -
Switched to using nix flakes and CHaP
- Makes configuration of binary-caches easier to discover (you get asked about adding them).
- Will make bumping dependencies (e.g. cardano-node) easier.
- Build commands for binaries and docker images change, see updated Contribution Guidelines
Full Changelog: 0.8.1...0.9.0
Contributors of this release: @v0d1ch @pgrange @ffakenz @perturbing @andreabedini @abailly-iohk @ch1bo
New Contributors:
- @dermetfan made their first contribution in #625
- @olgahryniuk made their first contribution in #684
- @NetWalker108 made their first contribution in #703
- @perturbing made their first contribution in #731
Built artifacts
Hydra Scripts
Transaction IDs to be used as --hydra-scripts-tx-id when running hydra-node on the following networks: