Skip to content

Releases: cardano-scaling/hydra

0.22.4

06 Aug 02:10
0.22.4
d505ff1
Compare
Choose a tag to compare
0.22.4 Pre-release
Pre-release

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

Hydra Scripts

Same as 0.22.3.

See also networks.json

Compatible / tested with

  • cardano-node: 10.1.2
  • cardano-cli: 10.1.1.0
  • mithril: 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

21 Jul 21:22
0.22.3
49d1f22
Compare
Choose a tag to compare
0.22.3 Pre-release
Pre-release

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

Hydra Scripts

Same as 0.22.2.

See also networks.json

Compatible / tested with

  • cardano-node: 10.1.2
  • cardano-cli: 10.1.1.0
  • mithril: 2450.0

Changelog

Full Changelog: 0.22.2...0.22.3

0.22.2

30 Jun 18:07
0.22.2
b984abc
Compare
Choose a tag to compare
0.22.2 Pre-release
Pre-release

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

Hydra Scripts

Same as 0.22.1.

See also networks.json

Compatible / tested with

  • cardano-node: 10.1.2
  • cardano-cli: 10.1.1.0
  • mithril: 2450.0

Changelog

Full Changelog: 0.22.1...0.22.2

0.22.1

27 Jun 14:20
0.22.1
ebf719e
Compare
Choose a tag to compare
0.22.1 Pre-release
Pre-release

Deprecated due to minor bug; use 0.22.2.

A hotfix release for #2089.

Build artifacts

Hydra Scripts

Same as 0.22.0

See also networks.json

Compatible / tested with

  • cardano-node: 10.1.2
  • cardano-cli: 10.1.1.0
  • mithril: 2450.0

Changelog

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

17 Jun 11:29
0.22.0
65b4c12
Compare
Choose a tag to compare
0.22.0 Pre-release
Pre-release

New release of hydra-node!

Notable changes:

Build artifacts

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.4
  • cardano-cli: 10.1.1.0
  • mithril: 2517.1

Changelog

  • Tested with cardano-node 10.1.4 and cardano-cli 10.1.1.0.

  • Fix tutorial usage of cardano-cli and include download of etcd.

  • Remove runtime dependency to etcd by embedding and shipping it with hydra-node.

    • New option --use-system-etcd to prefer the system etcd instead of the embedded one.
  • Add file-based event log rotation support via optional --persistence-rotate-after command 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-deadline with --deposit-period.
    • To make sure a deposit is picked up ensure that --deposit-period is longer than --contestation-period.
    • Change persisted events of hydra-node.
    • Change to the ReqSn message in the Hydra network protocol
    • Added DepositExpired for when a deposit was deemed expired.
  • Enable blockfrost integration for hydra-node.

  • Fix head status in post abort greetings output.

  • Add UDP and S3 examples for EventSource and EventSink implementations to hydra-node:examples.

  • Switch hydra-chain-observer to use HeadObservation when reporting observations to hydra-explorer.

    • Most observation types got changed quite a lot to match the previously used OnChainTx.
    • This introduces ToJSON and FromJSON instances on all observation types.
    • CollectComObservation and ContestObservation are made compatible with their OnChainTx counterparts.
  • Enhanced the error message for etcd cluster ID mismatches by including detailed information about
    the expected peers versus peers loaded from the hydra-node arguments.

  • Add API query (GET /head) to fetch the latest head state by a node and help introspecting the whole internal state.

  • Provide --network option 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

28 Apr 11:17
0.21.0
de71074
Compare
Choose a tag to compare
0.21.0 Pre-release
Pre-release

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

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.4
  • cardano-cli: 10.1.1.0
  • mithril: 2450.0

Changelog

  • BREAKING Switch to using etcd internally to establish a reliable L2 network

    • New run-time dependency onto etcd binary
    • The peer network options to hydra-node (--peer) need to match across the Hydra network.
    • --host and --port have been removed and we now have --listen and --advertise.
    • --listen can be the same as the old --host/--port combined, but you may require --advertise to set your public IP address and port combination, if you cannot bind to that on the local machine.
    • Adds NetworkConnected and NetworkDisconnected outputs which are most indicative of whether the L2 network is up or not.
    • Change PeerConnected and PeerDisconnected to indicate connectivity to --peer items and not the remote node-id.
    • Change PeerHandshakeFailure to a network-level NetworkVersionMismatch
    • Log outputs related to the network components changed significantly.
    • Persisted state (write ahead logs) of the network components changed significantly. The <persistence-dir>/etcd directory must not be lost or manual action to recover the L2 network (etcd cluster) with counter-parties needs to be taken.
    • To configure the etcd instance used internally, you may use ETCD_ environment variables. For example, to switch auto-compaction to periodic retention of 7 days:
      ETCD_AUTO_COMPACTION_MODE=periodic
      ETCD_AUTO_COMPACTION_RETENTION=168h
      
  • BREAKING Enable multi-party, networked "offline" heads by providing an --offline-head-seed option to hydra-node.

    • Drop hydra-node offline as a sub-command. Use --offline-head-seed and --initial-utxo options to switch to offline mode.
  • BREAKING API changes

    • API Server does NOT serve the event history by default any more. Clients need to add a query parameter ?history=yes in order to obtain the history.
    • Remove GetUTxO client input and corresponding GetUTxOResponse. There is already a way to query the UTxO in the Head with GET /snapshot/utxo query.
    • Renamed 'CommitFinalized' field 'theDeposit' to 'depositTxId'.
    • We now store the time in StateEvent which is a breaking change to our persistence loading
    • Query parameter ?address=.. does NOT filter TxValid and TxInvalid server outputs anymore.
    • Removed the transaction from TxValid server outputs. Use SnapshotConfirmed to determine what transactions got confirmed intead!
  • 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 Party information 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 SideLoadSnapshot client input.
      • add new LocalStateCleared state changed event.
      • add new SnapshotSideLoaded server output.
      • add new SideLoadSnapshotFailed logic error.
  • Changed default contestation period to 600 seconds and deposit deadline to 3600 seconds.

  • Add support for "withdraw zero trick" transactions:

    • Any transaction with a Rewarding redeemer for a Withdrawal of 0 lovelace, will be validated as if there would be a corresponding stake RewardAccount already registered.
    • No need to register the script's stake address before.
  • 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 --blockfrost option.

  • New metric for counting the number of active peers: hydra_head_peers_connected

  • Record used and free memory when running bench-e2e benchmark.

  • Submit observations to a hydra-explorer via optional --explorer option.

  • 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

16 Apr 20:30
0.20.1
134bb75
Compare
Choose a tag to compare
0.20.1 Pre-release
Pre-release

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

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.2
  • cardano-cli: 10.1.1.0
  • mithril: 2450.0

Changelog

  • Submit observations of hydra-chain-observer to a hydra-explorer via optional --explorer option.

  • Stream historical data from disk in the hydra-node API server.

  • Record used and free memory when running bench-e2e benchmark.

Full Changelog: 0.20.0...0.20.1

0.19.1

04 Mar 14:53
0.19.1
98ec49f
Compare
Choose a tag to compare
0.19.1 Pre-release
Pre-release

Tip

This is not the newest version, currently the latest release is 0.20.0.

A small maintenance release off the 0.19 feature set to make Hydra heads of that version visible in http://explorer.hydra.family/

Build artifacts

Hydra Scripts

  • 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

Changelog

  • Submit observations of hydra-chain-observer to a hydra-explorer via optional --explorer option.

Full Changelog: 0.19.0...0.19.1

0.20.0

04 Feb 08:55
0.20.0
Compare
Choose a tag to compare
0.20.0 Pre-release
Pre-release

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

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:

  1. Close and fanout the head
  2. Stop hydra-node
  3. Remove persistent files stored in --persistence-dir, in particular server-output, acks and state
  4. Upgrade hydra-node to this version
  5. Upgrade cardano-node to compatible version (above)
  6. Start new hydra-node version with new --hydra-scripts-tx-id (above)
  7. 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 and cardano-cli 10.1.1.0.

  • BREAKING Rewrite of the commit script in aiken:

    • This makes abort and collectCom transactions more efficient and results
      in a new maximum number of head participants being 8.
    • Changes script hashes in hydra-plutus
  • 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 and TxValid server outputs, as
    well as to persisted StateEvent 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.
  • 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 the hydra-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 filter SnapshotConfirmed, TxValid and TxInvalid server outputs by address. #1739

  • Updated hydra-tui to handle incremental commits #1747.

New Contributors

Full Changelog: 0.19.0...0.20.0

0.19.0

13 Sep 14:33
0.19.0
1ffe7c6
Compare
Choose a tag to compare
0.19.0 Pre-release
Pre-release

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

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 and cardano-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.
  • 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