Releases: cardano-scaling/hydra
1.2.0
Features and bugfixes
- There is a new
SafeCloseclient command which prevents closing the Head in case there are non-ADA assets in the confirmed snapshot UTxO #2330. - Add support for Blockfrost to the
hydra-tui#2032. hydra-nodehas a new endpointGET /head-initializationwhich serves the timestamp of the last Head initialization.- Tested with
cardano-node 10.5.3andcardano-cli 10.11.0.0.
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
-
preview:3c275192a7b5ff199f2f3182f508e10f7e1da74a50c4c673ce0588b8c621ed45,6f8a4b6404d4fdd0254507e95392fee6a983843eb168f9091192cbec2b99f83d,60d61b2f10897bf687de440a0a8b348a57b1fc3786b7b8b1379a65ace1de199a -
preprod:ba97aaa648271c75604e66e3a4e00da49bdcaca9ba74d9031ab4c08f736e1c12,ff046eba10b9b0f90683bf5becbd6afa496059fc1cf610e798cfe778d85b70ba,4bb8c01290599cc9de195b586ee1eb73422b00198126f51f52b00a8e35da9ce3 -
mainnet:e2512f44bb43f9c44dc3db495ce6a8ba6db6d8afaad2e3494b32d591845fb259,a5e683efe3acd02b7a1d0c13d1517672b2c78a74abd08dd455c34290150ea4d7,d0f70c628778a7d2e71ab366ad6112890b5fa5596ef553bc18accf66875af203
See also networks.json
Compatible / tested with
cardano-node:10.5.3cardano-cli:10.11.0.0mithril:2524.0
Changelog
Full Changelog: 1.1.0...1.2.0
1.1.0
Important Changes
- ❗ BREAKING Partial assets depositing works a bit differently now so you should consult our API reference.
These changes also enable more complex scenarios when depositing and gives more flexibility to our users since hydra-node is capable of balancing the deposit tx outputs now. #2180
What's Changed
- Add test for size of UTxO set we can fanout by @vrom911 in #2278
- Fanout limit end to end test by @jmagan in #2299
- Deposit improvements by @v0d1ch in #2282
- Update docs banner link to stable docs by @vrom911 in #2301
- Do not replace stable link to unstable in the banner by @vrom911 in #2302
- cardano-api: 10.17 by @locallycompact in #2061
- Document commit process using user scripts by @v0d1ch in #2276
- Add haskell-accumulator as dependency to hydra-node by @vrom911 in #2277
Full Changelog: 1.0.0...1.1.0
Hydra Scripts
preview:ee449c99464c5419954f39b98e513b17406e24c9883e6342e073006e54878524,d6e03afa86cf1d74011ba234ec32fbd102d4332c3891a49419dae318281bc96a,0b32f7cf144090b3a2d6787cb5b4cabbc0a72c1ae77bf72de8e3d9aa9476bfb7preprod:407bf714186db790f2624701b2e065850dd7b7cf998c931222d99a56d8ad256b,4cae9ad9c1cc4f82ce2fd51f9e1155a37ac88957f81128ba1c51bc7c6734ce6c,a3a27a3049be1fe931a0d99bf132a88b848b12dc50f50856cb86e12bb135f5d2mainnet:f6ef3adbfdc6a6cbf63ec160cc9a61ca58ce63a0ba52f8f3fe6b5acb19e14ab8,a699520a621bcc73918cf52ad8dfb097481573a43b9fb704f2b91df4ee56502c,6a9562c2fce83951f90e72df8d7ecc9e2db48f3202ba15a55622474975c069b9
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
1.0.0
A big release of hydra-node!
It's official. We're at version 1.0.0 🥳 🎉 🎂 !
This release represents our intention to continue to support our Hydra Head protocol implementation into production environments. We believe we've built a strong product for others to build on, and we will continue to work on adding powerful new features, showcasing hydra's capability, and addressing user issues.
We are presently working on addressing the largest outstanding known problem, partial fanout, and of course the day to day work is never done; but we believe this release represents a solid foundation :)
Features and bugfixes
- Allow partial deposit #2180
- Fixed bug where the TUI would have outdated information
- Hydra API server responds with correct content-type
- Extra information
Greetingsfor websocket clients to use as they see fit - Bugfixes for incremental commits/decommits
- Add endpoint
POST /transactionto submit transactions to the head - Improve HTTP API status codes
- Renamed
--script-infoto--hydra-script-catalogue - Allow recovering a deposit in all head states Issue #1812 and PR #2217
- Hotfix for statefile corruption by just ignoring invalid JSON lines #2253
- Select next deposit for ReqSn using FIFO, based on deposit created #2263
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
-
preview:08fea9f21fec08d47dd56cd632ece001616b247f6e2e893f98dcf1e69ddb58d0,c6ba286b501c076ee494b4686e681c5aab8f903d930e8366dcbca1c3530264ee,ed6b3ff639fb99b18916dd14b9837d893b1a053af38a27f604a7cdf543b86f6c -
preprod:e10437a6913ca5f708c3f15cc6f06792b85459f32883c9ed3fac5659f2ba383f,f217f72b3202ab0299e700e69094452ce177ecbc90daa461abceff7b32fb9898,05ba60bb792572428a0128f655c6ec67966000886132697ed02d884b69fce472 -
mainnet:84cde037c71b6cb80755738459f63fb1c7cdea22beff1cb8e23cd7f9916f5696,2a725d14075e4ce325569bcf6d0b4c98d9f5495b4bfa2d32de70c5ea4611b7cf,d0e542221a0e1949b0d79e8ebdf987395dce097411a89e886bb897408c2cc878
See also networks.json
Compatible / tested with
cardano-node:10.4.1cardano-cli:10.8.0.0mithril:2524.0
Changelog
Full Changelog: 0.22.4...1.0.0
Contributors
With thanks to everyone (especially those of you who have opened issues, or participated in our discord, or otherwise been part of our community) who has gotten us to this point!
We appreciate your efforts :) ❤️
0.22.4
A decently-sized path release making several stability improvements:
- Web API updated to work correctly under the presence of event-log rotation #2152
- Improvements to etcd #2148, #2171
- Reduced messages in the presence of mirror nodes #2146
Among other small improvements.
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
Same as 0.22.3.
See also networks.json
Compatible / tested with
cardano-node:10.1.2cardano-cli:10.1.1.0mithril:2450.0
Changelog
Full Changelog: 0.22.3...0.22.4
Contributors
With thanks to @jmagan, @solidsnakedev, @ch1bo, @ffakenz @v0d1ch and @vrom911 !
0.22.3
Small patch release to fix:
- TxInvalid causing a stuck head #2133
- Implementation of a workaround for etcd compaction causing failure when offline #2136; most useful for nodes you wish to recover with the side-load snapshot feature
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
Same as 0.22.2.
See also networks.json
Compatible / tested with
cardano-node:10.1.2cardano-cli:10.1.1.0mithril:2450.0
Changelog
Full Changelog: 0.22.2...0.22.3
0.22.2
A very small release to capture the fix for networks.json having the wrong scripts for 0.22.0 and 0.22.1.
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
Same as 0.22.1.
See also networks.json
Compatible / tested with
cardano-node:10.1.2cardano-cli:10.1.1.0mithril:2450.0
Changelog
- Fix for #2089
Full Changelog: 0.22.1...0.22.2
0.22.1
Deprecated due to minor bug; use 0.22.2.
A hotfix release for #2089.
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
Same as 0.22.0
See also networks.json
Compatible / tested with
cardano-node:10.1.2cardano-cli:10.1.1.0mithril:2450.0
Changelog
- Fix for #2089
Full Changelog: 0.22.0...0.22.1
Contributors
With big thanks to @jmagan @solidsnakedev @ffakenz @noonio and @ch1bo for helping to debug this issue!
0.22.0
New release of hydra-node!
Notable changes:
- Fix for a potential security issue reported by @colll78; see: Dangerous L1 event finality assumptions & Failed transactions not considered
- Event log rotation
- Other fixes around deposits
- Blockfrost integration
- Embedded etcd option
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
-
preview:f0836329dcc837ebc770de707a7490c90b5185d2f67a25b0ddbf19dc2b3efffb,f27acadbfe368032f812eec031ccf82b5f2cbeabc16846ae21758c518e44241e,39924b477411b6bd33258f63dd705e0712b513a21ea9bc422a23ec0be797ba03 -
preprod:c9c4d820d5575173cfa81ba2d2d1096fc40f84d16d8c17284da410a4fb5e64eb,ae4443b46f550289337fc5c2c52b24f1288dab36d1a229167a6e04f056a966fe,48bd29e43dd01d12ab464f75fe40eed80e4051c8d3409e1cb20b8c01120b425e -
mainnet:0571111c9cdbc4880625fb70c88eb2de1e09752a7b5a984644f7be6a0037051f,e0f89d9d24096de8c654302f00d80895c9e28c16ed40a4b2a086ddbeb915cf11,62f2e60c2d2e31e7dee22eea0f6f55903ff862c5c8b3205f48a498920a03a851
See also networks.json
Compatible / tested with
cardano-node:10.1.4cardano-cli:10.1.1.0mithril:2517.1
Changelog
-
Tested with
cardano-node 10.1.4andcardano-cli 10.1.1.0. -
Fix tutorial usage of
cardano-cliand include download ofetcd. -
Remove runtime dependency to
etcdby embedding and shipping it withhydra-node.- New option
--use-system-etcdto prefer the system etcd instead of the embedded one.
- New option
-
Add file-based event log rotation support via optional
--persistence-rotate-aftercommand line option. -
BREAKING Update scripts to plutus 1.45.0.0.
-
Hydra will now store etcd cluster information on the filesystem in directories content-addressed
by the cluster configuration. -
BREAKING Fixed observation of deposit transactions:
- Correctly ignore deposits with deadlines in the past or too soon in the future.
- Replaced
--deposit-deadlinewith--deposit-period. - To make sure a deposit is picked up ensure that
--deposit-periodis longer than--contestation-period. - Change persisted events of
hydra-node. - Change to the
ReqSnmessage in the Hydra network protocol - Added
DepositExpiredfor when a deposit was deemed expired.
-
Enable blockfrost integration for hydra-node.
-
Fix head status in post abort greetings output.
-
Add
UDPandS3examples forEventSourceandEventSinkimplementations tohydra-node:examples. -
Switch
hydra-chain-observerto useHeadObservationwhen reporting observations tohydra-explorer.- Most observation types got changed quite a lot to match the previously used
OnChainTx. - This introduces
ToJSONandFromJSONinstances on all observation types. CollectComObservationandContestObservationare made compatible with theirOnChainTxcounterparts.
- Most observation types got changed quite a lot to match the previously used
-
Enhanced the error message for
etcdcluster ID mismatches by including detailed information about
the expected peers versus peers loaded from thehydra-nodearguments. -
Add API query (GET /head) to fetch the latest head state by a node and help introspecting the whole internal state.
-
Provide
--networkoption to hydra-node in order to use pre-published hydra scripts.
Full Changelog: 0.21.0...0.22.0
With thanks to @v0d1ch @ch1bo @ffakenz @locallycompact @noonio
0.21.0
This release introduces etcd as the new networking layer for Hydra 🎉
Additionally, it includes various bug fixes, API enhancements, and enables multi-party support in offline-mode.
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
-
preview:bdf8a262cd5e7c8f4961aed865c026d5b6314b22a4bc31e981363b5bb50d1da6,0dbb43e152647c729c365aa18fce20133a212c6b43252fa25dbb7c0cf65ae011,54aec058e43e5cfe5161e8f97cc43f4601da180dc8ac13f3f39eb2fa08148a01 -
preprod:557b6a6eaf6177407757cb82980ebc5b759b150ccfd329e1d8f81bbd16fecb01,98e1a40224c5ed8eaff5fc1f865d89af47ae89fd4adc1c37fc80dfd901b0caf2,8fbdf7de4934ca4d22ed9cfac0f6e2566990751b6f4b944470dafabbd079b965 -
mainnet:b5d5fa4d367005bdd6449dcca049aa61aa8b59a907231b03bb006eda01e8e73a,696ec03023309d8e75f983d4285880dcfcfac58c06808e0191ef075f10034212,48e09f38b208f4f30b1fe29232f450cfea88ffc9393ac34b1069dddce2758e8d
See also networks.json
Compatible / tested with
cardano-node:10.1.4cardano-cli:10.1.1.0mithril:2450.0
Changelog
-
BREAKING Switch to using
etcdinternally to establish a reliable L2 network- New run-time dependency onto
etcdbinary - The peer network options to
hydra-node(--peer) need to match across the Hydra network. --hostand--porthave been removed and we now have--listenand--advertise.--listencan be the same as the old--host/--portcombined, but you may require--advertiseto set your public IP address and port combination, if you cannot bind to that on the local machine.- Adds
NetworkConnectedandNetworkDisconnectedoutputs which are most indicative of whether the L2 network is up or not. - Change
PeerConnectedandPeerDisconnectedto indicate connectivity to--peeritems and not the remotenode-id. - Change
PeerHandshakeFailureto a network-levelNetworkVersionMismatch - Log outputs related to the network components changed significantly.
- Persisted state (write ahead logs) of the network components changed significantly. The
<persistence-dir>/etcddirectory must not be lost or manual action to recover the L2 network (etcd cluster) with counter-parties needs to be taken. - To configure the
etcdinstance used internally, you may useETCD_environment variables. For example, to switch auto-compaction to periodic retention of 7 days:ETCD_AUTO_COMPACTION_MODE=periodic ETCD_AUTO_COMPACTION_RETENTION=168h
- New run-time dependency onto
-
BREAKING Enable multi-party, networked "offline" heads by providing an
--offline-head-seedoption tohydra-node.- Drop
hydra-node offlineas a sub-command. Use--offline-head-seedand--initial-utxooptions to switch to offline mode.
- Drop
-
BREAKING API changes
- API Server does NOT serve the event history by default any more. Clients need to add a query parameter
?history=yesin order to obtain the history. - Remove
GetUTxOclient input and correspondingGetUTxOResponse. There is already a way to query theUTxOin the Head withGET /snapshot/utxoquery. - Renamed 'CommitFinalized' field 'theDeposit' to 'depositTxId'.
- We now store the
timeinStateEventwhich is a breaking change to our persistence loading - Query parameter
?address=..does NOT filterTxValidandTxInvalidserver outputs anymore. - Removed the
transactionfromTxValidserver outputs. UseSnapshotConfirmedto determine what transactions got confirmed intead!
- API Server does NOT serve the event history by default any more. Clients need to add a query parameter
-
Fix a bug in increment observation where wrong deposited UTxO was picked up.
-
Fix a bug where incremental commits / decommits were not correctly observed after restart of
hydra-node. This was due to incorrect handling of internal chain state #1894 -
Fix a bug where decoding
Partyinformation from chain would crash the node or chain observer.- A problematic transaction will now be ignored and not deemed a valid head protocol transaction.
- An example was if the datum would contain CBOR instead of just hex encoded bytes.
-
Fix a bug on HeadFannedOut as it should always display the observed fanned-out UTxO instead of local confirmed snapshot.
-
API Additions
- Add query (GET /snapshot/last-seen) to fetch the latest seen snapshot by a node and help identify non-cooperating peers.
- Add command (POST /snapshot) to adopt the given snapshot as the latest confirmed.
- add new
SideLoadSnapshotclient input. - add new
LocalStateClearedstate changed event. - add new
SnapshotSideLoadedserver output. - add new
SideLoadSnapshotFailedlogic error.
- add new
-
Changed default contestation period to 600 seconds and deposit deadline to 3600 seconds.
-
Add support for "withdraw zero trick" transactions:
- Any transaction with a
Rewardingredeemer for aWithdrawalof0 lovelace, will be validated as if there would be a corresponding stakeRewardAccountalready registered. - No need to register the script's stake address before.
- Any transaction with a
-
Remove checks that rely on hydra-node's local state and trust on-chain data when we observe decrement/recover transactions.
-
Publish scripts using blockfrost via new
hydra-node publish-scripts --blockfrostoption. -
New metric for counting the number of active peers:
hydra_head_peers_connected -
Record used and free memory when running
bench-e2ebenchmark. -
Submit observations to a
hydra-explorervia optional--exploreroption. -
Add a list of clients to the docs
-
Stream historical data from disk in the hydra-node API server.
Full Changelog: 0.20.0...0.21.0
0.20.1
A small maintenance release off the 0.20 feature set to make Hydra heads of that version visible in http://explorer.hydra.family/
Build artifacts
- 📦 Binaries for Linux x86_64 and MacOS ARM64
- 🐋 Docker image
Hydra Scripts
-
preview:b7b88533de303beefae2d8bb93fe1a1cd5e4fa3c4439c8198c83addfe79ecbdc,da1cc0eef366031e96323b6620f57bc166cf743c74ce76b6c3a02c8f634a7d20,6665f1dfdf9b9eb72a0dd6bb73e9e15567e188132b011e7cf6914c39907ac484 -
preprod:5237b67923bf67e6691a09117c45fdc26c27911a8e2469d6a063a78da1c7c60a,5ed4032823e295b542d0cde0c5e531ca17c9834947400c05a50549607dbc3fa5,128af7ef4fd3fa8d1eda5cb1628aa2a1e8846d7685d91e0c6dae50b7d5f263b2 -
mainnet:4f6db33d2e6940672e4a8061efd4dc999ac3e76c9d203961fabe1e15ed1aaf73,543d03edfbc54208338abc06c6f5b1bbd840b0169dffd010df8f2f54600ba1f9,8d833996cfe92b3bee45eb5fbef4eb7f8ed2e71772c396a3d0db5c21b3429476
See also networks.json
Compatible / tested with
cardano-node:10.1.2cardano-cli:10.1.1.0mithril:2450.0
Changelog
-
Submit observations of
hydra-chain-observerto ahydra-explorervia optional--exploreroption. -
Stream historical data from disk in the hydra-node API server.
-
Record used and free memory when running
bench-e2ebenchmark.
Full Changelog: 0.20.0...0.20.1