Releases: cardano-scaling/hydra
0.20.0
This release brings the new capability to Hydra node - adding funds while the Head is live - Incremental Commits 🎉
A part from this there are some bug fixes, new API filtering option and initial work to enable BlockFrost integration.
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 also stored in the repository:
-
preview
:b7b88533de303beefae2d8bb93fe1a1cd5e4fa3c4439c8198c83addfe79ecbdc,da1cc0eef366031e96323b6620f57bc166cf743c74ce76b6c3a02c8f634a7d20,6665f1dfdf9b9eb72a0dd6bb73e9e15567e188132b011e7cf6914c39907ac484
-
preprod
:5237b67923bf67e6691a09117c45fdc26c27911a8e2469d6a063a78da1c7c60a,5ed4032823e295b542d0cde0c5e531ca17c9834947400c05a50549607dbc3fa5,128af7ef4fd3fa8d1eda5cb1628aa2a1e8846d7685d91e0c6dae50b7d5f263b2
-
mainnet
:4f6db33d2e6940672e4a8061efd4dc999ac3e76c9d203961fabe1e15ed1aaf73,543d03edfbc54208338abc06c6f5b1bbd840b0169dffd010df8f2f54600ba1f9,8d833996cfe92b3bee45eb5fbef4eb7f8ed2e71772c396a3d0db5c21b3429476
See also networks.json
Compatible / tested with
cardano-node
:10.1.2
cardano-cli
:10.1.1.0
mithril
:2450.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
-
BETA hydra-node now supports incremental commits in beta mode. We would like to test out this feature
with the community members building on Hydra. This feature means you can commit funds to a Head while it is running. -
There is a new
--deposit-deadline
argument to hydra-node that determines the maximum time for the hydra-node to detect a deposit.
After this time has passed users can recover a deposit in case it wasn't observed previously. -
BREAKING hydra-node accepts multiple
hydra-scripts-tx-id
as a comma-seperated list, as the outcome of changes in the Hydra scripts publishing. -
Tested with
cardano-node 10.1.2
andcardano-cli 10.1.1.0
. -
BREAKING Rewrite of the commit script in aiken:
- This makes
abort
andcollectCom
transactions more efficient and results
in a new maximum number of head participants being8
. - Changes script hashes in
hydra-plutus
- This makes
-
BREAKING Rewrite of the initial script in aiken and update to Plutus V3:
- This makes the initial script smaller by 1337 bytes
- Changes script hashes in
hydra-plutus
-
Fix the bug where commit endpoint drops withdraw redeemers #1643
-
BREAKING Change to
SnapshotConfirmed
andTxValid
server outputs, as
well as to persistedStateEvent
format:- Snapshots now contain the full transactions in
confirmed
and field names changed. - Persisted
StateChanged
events containing a snapshot changed consequently
and are not backward compatible. TxValid
only refers to the transaction by id.- Overall this results in transactions still to be submitted once per client,
but requires signifanctly less book-keeping on the client-side.
- Snapshots now contain the full transactions in
-
Auto-debug and provide more information on
PlutusFailure
when validating transactions on L2 ledger. #1789 -
Bump docusaurus version. #1768
-
Add blockfrost support to
hydra-chain-observer
, to follow the chain via Blockfrost API. #1631 -
Fix
bench-e2e single
benchmarks and only use--output-directory
to keep
the whole benchmark state. #1693 -
Add
inlineDatumRaw
to transaction outputs on thehydra-node
API. #1684 -
Use different versions of mithril depending on the network (Sanchonet/Preview: Unstable, Mainnet/Preproduction: 2450.0) #1743
-
New websocket URL parameter
?address=...
to filterSnapshotConfirmed
,TxValid
andTxInvalid
server outputs by address. #1739 -
Updated
hydra-tui
to handleincremental commits
#1747.
New Contributors
- @colll78 made their first contribution in #1671
- @yHSJ made their first contribution in #1723
- @cuiyourong made their first contribution in #1759
- @jpraynaud made their first contribution in #1775
- @f0rm4l1ty made their first contribution in #1782
Full Changelog: 0.19.0...0.20.0
0.19.0
This release switches the ledger to Conway, while maintaining compatibility with Babbage-style transactions.
We also added some new functionality into the hydra-tui, and added some extra information in the Greetings message.
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 also stored in the repository:
-
preview
:0fd2468a66a0b1cb944cff9512ecfa25cdd2799cb48b07210c449a5ecace267d
-
preprod
:03f8deb122fbbd98af8eb58ef56feda37728ec957d39586b78198a0cf624412a
-
mainnet
:ab1d9f8cca896bca06b70df74860deecf20774e03d8562aecaed37525f6ebead
See also networks.json
Compatible / tested with
cardano-node
:9.1.1
cardano-cli
:9.2.1.0
mithril
:2430.0
Upgrade instructions
No breaking changes or special care needed, just update your hydra-node
.
Changelog
-
Tested with
cardano-node 9.1.1
andcardano-cli 9.2.1.0
-
Switch L2 ledger to use the
Conway
era. #1178- Conway formatted transactions can be submitted to the
hydra-node
, while past eras are still supported (except deprecated features like protocol updates). - This includes support for
PlutusV3
scripts, but most of the governance-related features have no meaning in the Hydra L2.
- Conway formatted transactions can be submitted to the
-
Added head id information into the Greetings message.
-
Adds a manual recipient address entry to
hydra-tui
and fixes event handling. #1607 -
Add a demo mode to hydra-cluster to facilitate network resiliance tests #1552
Contributors
With thanks to @ch1bo @v0d1ch @locallycompact @ffakenz @noonio
Full Changelog: 0.18.1...0.19.0
0.18.1
Small release that adds --tls-{key,cert}
support to hydra-node API and fixes transaction pruning under heavy load.
Also, we have a new landing page on our website now: 👉 https://hydra.family/head-protocol/ 👈
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
Scripts did not change, so you can use the same transaction IDs as with 0.18.0
as --hydra-scripts-tx-id
when running hydra-node
:
-
preview
:19d25f489ffa66ba3568342657fe441f47a417d4e31585b5f0278ebe619ecf41
-
preprod
:976b28bc716490fbaa4e17d7bf33b04f27fcfafef58c436c4f2644adeeb48829
-
mainnet
:747c39eb53a4092fd46e10b417beef9781bf336a4fc1fd439e7492fe3876a1ba
See also networks.json
Compatible / tested with
cardano-node
:9.1.0
cardano-cli
:9.2.1.0
mithril
:2428.0
Upgrade instructions
No breaking changes or special care needed, just update your hydra-node
.
Changelog
-
Tested with
cardano-node 9.1.0
andcardano-cli 9.2.1.0
. -
New landing page and updated documentation style. #1560
-
Fixed pruning of transactions when a snapshot is requested:
- Before, the
hydra-node
would re-apply transactions in the wrong order which made already "seen" transactions (indicated byTxValid
) disappear from the local ledger state and also not get snapshotted. - Details in #1559
- Before, the
-
Add TLS support for the API server via
--tls-cert
and--tls-key
command line options. #1555
Contributors
- @fstoqnov-iohk made their first contribution in #1549
Other contributors to this release: @noonio @ch1bo @oduameh
Full Changelog: 0.18.0...0.18.1
0.18.0
Add capability to withdraw funds from a running Head, documentation improvements, fixes for the internal wallet fee calculation and various other improvements.
⚠️ 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
:19d25f489ffa66ba3568342657fe441f47a417d4e31585b5f0278ebe619ecf41
-
preprod
:976b28bc716490fbaa4e17d7bf33b04f27fcfafef58c436c4f2644adeeb48829
-
mainnet
:747c39eb53a4092fd46e10b417beef9781bf336a4fc1fd439e7492fe3876a1ba
Compatible / tested with
cardano-node
:9.1.0
cardano-cli
:9.2.1.0
mithril
:2428.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
-
Tested with
cardano-node 9.1.0
andcardano-cli 9.2.1.0
. -
Fixed fee calculation of the internal wallet when the network switches to
Conway
. This allows heads to be opened inBabbage
and closed/finalized inConway
. #1553 -
BREAKING Changes to the
hydra-node
API/commit
endpoint #1463:- Removed the check that prevented committing UTxOs from an internal
hydra-node
wallet. SpendingNodeUtxoForbidden
error was removed.
- Removed the check that prevented committing UTxOs from an internal
-
Add capability to move UTxO out of an open Head to the Cardano main chain: #1344
- Submitting a decommit transaction to
POST /decommit
or asDecommit
command through websocket, requests removal of this transactions' outputs from the head. - When successful,
DecommitApproved
andDecommitFinalized
indicate that all outputs are made available on the layer one. - Invalid transactions are explained through a
DecommitInvalid
server output.
- Submitting a decommit transaction to
-
Change
--start-chain-from
to always use the newer point when also a head state is known. #1471 -
Moved several pages from "core concepts" into the user manual and developer docs to futher improve user journey. #1486
-
Offline mode of
hydra-node
uses--node-id
to derive an artificial offlineheadId
. #1551
Full Changelog: 0.17.0...0.18.0
Contributors:
- @rezabaram made their first contribution in #1452
- @oduameh made their first contribution in #1451
- @errfrom made their first contribution in #1463
- @noonio made their first contribution in #1490
- @disassembler made their first contribution in #1503
Other contributors to this release: @v0d1ch @locallycompact @ffakenz @ch1bo
0.17.0
Add the versioned network protocol, make the commit process more flexible (open more use-cases) and improve our website experience.
⚠️ 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
:6d3f02bc648c1b62bb90fc221a8476fc47d4faaea4a293b00e58ac40c3377b85
-
preprod
:c7b9db4986611d0ce7ff8546ef5d42af68566783a40604c372182342c4124e7d
-
mainnet
:0d2eca8c8daf23061f5ba24a8f3113afba52a2e26318dc78c5583d9fc86b7b85
Compatible / tested with
cardano-node
:8.9.0
cardano-cli
:8.20.3.0
mithril
:2418.1
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 Change
hydra-node
API/commit
endpoint for committing from scripts #1380:- Instead of the custom
witness
extension ofUTxO
, the endpoint now accepts a blueprint transaction together with theUTxO
which is spent in this transaction. - Usage is still the same for commiting "normal"
UTxO
owned by public key addresses. - Spending from a script
UTxO
now needs theblueprintTx
request type, which also unlocks more involved use-cases, where the commit transaction should also satisfy script spending constraints (like additional signers, validity ranges etc.)
- Instead of the custom
-
DEPRECATED the
GetUTxO
client input andGetUTxOResponse
server output. UseGET /snapshot/utxo
instead. -
Update navigation and re-organized documentation website https://hydra.family #1440
- Updated logos
- Removed localization as it got outdated and on-demand site translation tools exist.
-
Add
GET /snapshot/utxo
API endpoint to query confirmed UTxO set on demand. #1398- Always responds with the last confirmed UTxO
-
Set CORS headers on
hydra-node
API to allow requests from any origin*
. #1434 -
hydra-node
logs will now reportNetworkEvents
to distinguish betweenConnectivityEvent
s andReceivedMessage
s on the network. #1396 -
Hydra now uses a versioned protocol for handshaking. In the event of a node
attempting to connect using a different version of the networking protocol, a
HandshakeFailure
event will be recorded in the logs and sent as a server
output on the API. #1381 -
Make
hydra-cluster --devnet
more configurable- Now it is idle by default again and a
--busy
will make it busy respending the same UTxO. #1420
- Now it is idle by default again and a
Contributors: @v0d1ch @abailly-iohk @locallycompact @ffakenz @ch1bo
Full Changelog: 0.16.0...0.17.0
0.16.0
Major 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
0.15.0
Run a hydra-node
in offline mode, improved errors when connecting to an incompatible chain and support for upcoming Conway
era (heads survive the hard-fork, but the L2 ledger still is only Babbage
)
⚠️ 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
:c21b70a719112f76d318abcfee95499a27556ef4a18b1c62bc38e4b9c07ae3a6
-
preprod
:8ce483e2d4b81f9254392afda1f85d1e123165665593228c39064691903f431a
-
mainnet
:7d998b617526d827dd69a495f5d5dc2c5e293b86a62ad61cb2fb5f2503cd87f0
Compatible / tested with
cardano-node
:8.7.3
cardano-cli
:8.17.0.0
kupo
:2.7
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
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 Remove head state from
hydra-node
chain layer 1196:- Not maintain head state in the chain layer anymore and all decision making (whether it's "our" head) is now fully contained in the logic layer.
- This is a breaking change on the persisted
state
file, which now only stores so-calledspendableUTxO
. This raises aPersistenceException
if an incompatiblestate
file is loaded. - Heads need to be closed before upgrade to this version, as wiping
state
in the--persistence-dir
is needed. - This also changes the
NodeOptions
log output because of internal restructuring of chain layer configuration.
-
New
offline
sub-command forhydra-node
#1118, #1222:- Initializes a head with given
--initial-utxo
parameter, and does not connect to the Cardano network. - Transactions submitted on the L2 are validated as usual, where the offline chain simulates time passing in slots.
- The
--ledger-genesis
option allows to give a shelley genesis file to configure start time and slot length of the simulated chain time.
- Initializes a head with given
-
Prepare
hydra-node
for the upcomingConway
hard-fork #1177:- Interactions with
cardano-node
are updated to work in both,Babbage
andConway
era. - Unsupported eras are reported as error when starting.
- Interactions with
-
Add a default for
hydra-node --node-id
("hydra-node-1"
) to simplify configuration. -
Fix
hydra-node
API reference & schema for/protocol-parameters
#1241. This now matches the JSON returned bycardano-cli query protocol-parameters
, expected athydra-node --ledger-protocol-parameters
and produced by the API endpoint. -
The
hydra-cluster
binary can bootstrapcardano-node
s running on public networks usingmithril-client
. -
BREAKING Internal changes to
hydra-cardano-api
:- Renamed
HasMultiAsset
type class toIsMaryEraOnwards
. UsemaryEraOnwards
to produce witnesses for features from mary onwards. - Renamed
HasScriptData
type class toIsAlonzoEraOnwards
. UsealonzoEraOnwards
to produce witnesses for features from alonzo onwards. - Renamed
HasInlineDatums
type class toIsBabbageEraOnwards
. UsebabbageEraOnwards
to produce witnesses for features from babbage onwards.
- Renamed
Full Changelog: 0.14.0...0.15.0
Contributors
Contributors to this release: @cardenaso11 @v0d1ch @abailly-iohk @locallycompact @ffakenz @ch1bo
0.14.0
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
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
0.13.0
Release focusing on various security fixes, ensuring users can commit scripts using inline datums, simplifying event storing, an important update to our security policy, and lots of other fixes.
Warning
As this release fixes a number of security issues, users running Hydra heads on mainnet are strongly advised to close them and upgrade their nodes to this version
Warning
There are several known issues, which are explained in the documentation.
Built artifacts
Hydra Scripts
Transaction IDs to be used as --hydra-scripts-tx-id
when running hydra-node
on the following networks:
-
preview
:1e00c627ec4b2ad0b4aa68068d3818ca0e41338c87e5504cda118c4050a98763
checked in smoke test #132 -
preprod
:f917dcd1fa2653e33d6d0ca5a067468595b546120c3085fab60848c34f92c265
checked in smoke test #133 -
mainnet
:989e3ab136a2cdd3132a99975e76e02f62bcb03ba64ddbb5d2dfddffca8d390d
checked in smoke test #131
This release contains breaking changes of the persistence and on-chain scripts
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 particular
server-output
andstate
- Upgrade
hydra-node
version - Upgrade
cardano-node
version to8.1.2
- Start new
hydra-node
version with new--hydra-scriptx-tx-id
- Open a new head
New Security Advisories
- CVE-2023-42448: Contestation deadline can be tempered with after a head is closed
- CVE-2023-42449: Participation tokens can be extracted from initial script using forged policy id
- CVE-2023-38701: Committed UTxO can be spent arbitrarily (this fix was actually released in version 0.12.0)
Thanks to @jmhrpr for reporting those issues.
-
BREAKING
- Update to plutus 1.9. This changes the script hashes.
- Changes to
hydra-plutus
scripts.
-
Query at the tip for local cardano-node queries. 1053
-
Add option to draft a commit tx using inline datums. 1052
-
Remove hydra-tools package.
- Move functionality to generate hydra keys to the hydra-node executable.
1031
- Move functionality to generate hydra keys to the hydra-node executable.
-
Changes to
hydra-node
state persistency:- Remove the recursive definition of the chain state.
- This makes the event store more lightweight and easier to read and work with. 1049
Full Changelog: 0.12.0...0.13.0
New Contributors
- @caike made their first contribution in #1042
- @locallycompact made their first contribution in #1075
Other contributors to this release: @abailly-iohk @ch1bo @v0d1ch @ffakenz @pgrange
0.12.0
Release focusing on changes to the L2 protocol, ensuring authenticated messages and removing redundancy of submitted transactions. Performance improvements on persistence and communicated network messages are expected in this release. Adds several endpoints to the API and removes the internal commit via websockets feature. Last, but not least, this release contains several security fixes.
Warning
There are several known issues, which are explained in the documentation.
Built artifacts
Hydra Scripts
Transaction IDs to be used as --hydra-scripts-tx-id
when running hydra-node
on the following networks:
-
preview
:4793d318ec98741c0eebff7c62af6389a860c6e51c4fa1961cc5b7eab5a46f58
checked in smoke test #126 -
preprod
:02aa4c107cab6b541d6f12cda9604b1164a3d5b14dd96c3b6057bcf6c2ab2ccd
checked in smoke test #127 -
mainnet
:eb4c5f213ffb646046cf1d3543ae240ac922deccdc99826edd9af8ad52ddb877
checked in smoke test #128
This release contains breaking changes of the persistence and on-chain scripts
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 particular
server-output
andstate
- Upgrade
hydra-node
version - Upgrade
cardano-node
version to8.1.2
- Start new
hydra-node
version with new--hydra-scriptx-tx-id
- Open a new head
-
BREAKING Support new cardano-node version 8.1.2 #1015
-
Updated chain client and internal (layer 2) ledger versions to support the
new cardano-node versions. No direct impact on hydra clients expected. -
The JSON encoding of transaction as used at the
hydra-node
API changed
slightly. Verification key witnesses (keys
fieldwitnesses
) are not
double wrapped cbor arrays anymore. Do not rely on this serialization as we
will change this again into a more "cardanonical" form. Alternative: Use
cbor=true
query parameter to receive full CBOR encoded transactions. -
The last stable cardano-node version 1.35.7 is not compatible anymore.
-
-
BREAKING Remove the DEPRECATED
Commit
websocket command to commit
funds held by thehydra-node
internal wallet. Use the external commit feature
instead. Also rename theErrNoFuelUTxOFound
toErrNoUTxOFound
. #1018 -
BREAKING Changes to Hydra scripts due to upgrading our plutus version and
toolchain to GHC 9.2.8. #1005 -
BREAKING Change persisted state to be a sequence of events instead #999. This
increases the performance of thehydra-node
as less data needs to be written
and prepares internal architecture for more event-sourced improvements. -
BREAKING Introduce authenticated network messages #965:
- Peers will sign messages before broadcasting them to other peers,
and verify signature of received messages is from a known party
and of course valid.
- Peers will sign messages before broadcasting them to other peers,
-
BREAKING Layer 2 protocol change:
- Wait for all transactions requested in a snapshot to be seen before
acknowledging it, and only send transaction ids in snapshot requests #904.
- Wait for all transactions requested in a snapshot to be seen before
-
Enhanced
hydra-node
api. -
Fixed a bug in
hydra-node
(on-chain protocol not affected) where
multisignature verification would silently ignore certain keys in case the
list of verification keys is not of same length as the list of signatures. -
Fixed a bug in the
hydra-tui
dialogs where recipient and UTxO to spend where
not correctly selected #1025. -
BREAKING Changes to
hydra-cardano-api
#1015:- Drop
UsingRawBytesHex
as it is available upstream incardano-api
now. - Remove
totalExecutionCost
ascardano-ledger
providesgetMinFeeTx
now. - Add
BundledProtocolParameters
pattern for latestEra
toHydra.Cardano.Api
. - Add
ledgerEraVersion
for the latestEra
en-/decoder version. - Change
minUTxOValue
to takeBundledProtocolParameters
. - Add
fromLedgerMultiAsset
helper as transactions onlymint
MultiAsset
.
- Drop
-
Created
hydra-plutus-extras
package to re-use some utilities better between
packages #1016.Full Changelog: 0.11.0...0.12.0
New Contributors
- @locallycompact made their first contribution by cutting this release
- @james-iohk made their first contribution in #992
- @nebojsa-io made their first contribution in #964
Other contributors to this release: @abailly-iohk @ch1bo @v0d1ch @ffakenz @pgrange