0.16.0
Pre-releaseMajor changes to the transaction representation in the API, more preparations for Conway era and EventSource/EventSink abstractions for streaming plugins.
⚠️ Warning
There are still several known issues, which are explained in the documentation.
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64, also attached
- 🐋 Docker image
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
:1f34e4ee2404a5e4fc8ef970b7b8717af34c1a5a22107b82cde79c5d11da93b9
-
preprod
:6264cee4d5eab3fb58ab67f3899ecbcc0d7e72732a2d9c1c5d638115db6ca711
-
mainnet
:2d52e5787b198daeb280f9de63e5dec126b1843b050e85b1642ff8e47cb6de73
Compatible / tested with
cardano-node
:8.9.0
cardano-cli
:8.20.3.0
mithril
:2412.0
Upgrade instructions
This release contains breaking changes of the persisted data and on-chain scripts. This means that you'll need to apply the following procedure to upgrade all the nodes currently running a head:
- Close and fanout the head
- Stop
hydra-node
- Remove persistent files stored in
--persistence-dir
, in particularserver-output
,acks
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 Hydra scripts changed due to updates in the
plutus
toolchain:- Overall slight increase in script size.
- 50% less memory usage in
close
andcontest
transactions. - Slightly less memory usage in
abort
and may be possible with 6 parties now.
-
BREAKING Transaction serialization on hydra-node API and persisted data changed:
- All transactions are now only serialized as CBOR-encoded envelopes.
- This was needed to avoid accidentally changing transaction ids between Cardano era transaction formats.
- See API reference for more details on the format.
-
BREAKING Change to the
hydra-node
logs, monitoring and removal oflog-filter
executable:- Renamed the
Event
data types toInput
and consequently log items likeBeginEvent
toBeginInput
. - Changed structure of
LogicOutcome
entries. - Added node-level log entry when an input was
DroppedFromQueue
. - In course of this, the
log-filter
executable was removed as nobody is actively using it and other off-the-shelf utilities to manipulate structured JSON logs (jq
is already quite powerful) are recommended. - Renamed prometheus metric
hydra_head_events -> hydra_head_inputs
.
- Renamed the
-
Introduce
EventSource
andEventSink
interfaces inhydra-node
:- These handles can now be used as "extension points" to make the
hydra-node
store and load its state differently or exposeStateEvent
s to other, external services. - Internal refactoring of persistence mechanism as event source and sink in a backward-compatible way.
- More details can be found in ADR21
- These handles can now be used as "extension points" to make the
-
Add metadata to identify Hydra protocol transactions created by
hydra-node
. -
Provide more details about why a command failed. Added the state of the head logic at the point of failure.
-
Fix a bug where the
hydra-node
would not correctly observe a contest transaction and fail to fanout a head #1260. -
Add
contestationDeadline
to theHeadIsContested
output on thehydra-node
API. -
Add
--sanchonet
option tohydra-cluster
binary. -
Enhance
hydra-cluster --devnet
mode to produce a constant stream of snaphsots by re-spending the sandbox UTxO. -
Reduce cost of transactions submitted by
hydra-node
by better estimating fees in internal wallet #1315. -
Fix conversion of
Conway
blocks inhydra-node
andhydra-chain-observer
. This also includes tests that verifyhydra-node
working on Conway networks likesanchonet
and thehydra-explorer
observing heads onsanchonet
. -
Fix a bug in the contest observation where contesters were extracted from the
input instead of the output datum.
#1266
New Contributors
- @coot made their first contribution in #1300
- @Quantumplation made their first contribution in #1351
Contributors
Contributors: @v0d1ch @abailly-iohk @locallycompact @ffakenz @ch1bo
Full Changelog: 0.15.0...0.16.0