Skip to content

Tags: cardano-scaling/hydra

Tags

1.0.0

Toggle 1.0.0's commit message

Verified

This tag was signed with the committer’s verified signature.
noonio Noon
[1.0.0] - 2025-10-08

- Accept additional field `amount` when depositing to specify the amount of
 Lovelace that should be depositted to a Head returning any leftover to the
 user. [#2180](#2180)

- Add `--blockfrost-query-timeout` and `--blockfrost-retry-timeout` to configure
 Blockfrost API timeouts.
 See the [corresponding issue](#2058)
 and [PR](#2267) for more details.

- Fix bug where TUI would have out-of-date head status information
 after restarting on a rotated node (due to event rotation).

- Hydra API server responds with the correct `Content-Type` header `application-json`.

- Add `Environment` to `Greetings` message, enabling clients to access runtime settings.

- Bugfix for incorrect logic around fanning out with decommit/commit in progress

- Hydra node now rejects requests for incremental commits if provided UTxO is below the limit.

- Add API endpoint `POST /transaction` to submit transaction to the head.

- Improve HTTP API status codes for side-effecting endpoints to reflect operation outcome:
 - `POST /snapshot`: 200 on successful side-load, 400 on validation failure, 202 on timeout
 - `POST /decommit`: 200 on finalize, 400 on invalid/failed, 202 on timeout
 - `DELETE /commits/:txid`: 200 on recovered, 400 on failed, 202 on timeout
 - See [Issue #1911](#1911) and [PR #2124](#2124).

- Tested with `cardano-node 10.4.1` and `cardano-cli 10.8.0.0`.

- **BREAKING** Rename `--script-info` option to `--hydra-script-catalogue` in the `hydra-node` CLI.

- Label threads, queues and vars.

- **BREAKING** Enable handling client recover in all head states.
 - See [Issue #1812](#1812) and [PR #2217](#2217).
   > This enables clients (e.g. the TUI) to fully recover after event-log rotation.
 - The Checkpoint event, and consequently the EventLogRotated server output, now carry the full NodeState instead of just the HeadState.

- Optimistic approach to statefile corruption by just ignoring invalid JSON
 lines [#2253](#2253)

- Select next deposit for ReqSn using FIFO, based on deposit created.
 - See [#2263](#2263)

0.22.4

Toggle 0.22.4's commit message

Verified

This tag was signed with the committer’s verified signature.
noonio Noon
[0.22.4] - 2025-08-05

- Fix API not correctly handling event log rotation. This was evident in not
 being able to use `/commit` although the head is initializing or outdated
 information in the `Greetings` message.

- Ignore snapshot signatures of already confirmed snapshots. This was previously
 resulting in the node waiting for the accompanying snapshot request and
 occurred when running heads with mirror nodes.

- Fix an internal persistent queue blocking after restart when it reached
 capacity.

- Timeout and retry broadcast of network messages after 3 seconds in case the
 `etcd` grpc server is not responsive. This should avoid build-up on the
 outbound persistent queue.

- Handle failing lease keep alive in network component and avoid bursts in
 heartbeating.

- Fix for blocking bug when broadcasting messages via etcd. See:
 #2167. This is not a full fix
 but is enough to resolve the problem until we can identify the central cause
 of the issue.

- Fix rotation log id consistency after restart by changing the rotation check to trigger only
when the number of persisted `StateChanged` events exceeds the configured `--persistence-rotate-after` threshold.
 * This also prevents immediate rotation on startup when the threshold is set to 1.
 * `Checkpoint` event ids now match the suffix of their preceding rotated log file and the last `StateChanged` event id within it,
 preserving sequential order and making it easier to identify which rotated log file was used to compute it.

latest

Toggle latest's commit message

Verified

This commit was signed with the committer’s verified signature.
noonio Noon
Release 0.22.4

0.22.3

Toggle 0.22.3's commit message

Verified

This tag was signed with the committer’s verified signature.
noonio Noon
[0.22.3] - 2025-07-21

* Change behavior of `Hydra.Network.Etcd` to fallback to earliest possible
 revision if `last-known-revision` is missing or too old. This can happen if a
 node is down for a long time and the `etcd` cluster compacted the last known
 revision in the meantime
 [#2136](#2136).

- Don't keep around invalid transactions as they could lead to stuck Head.

0.22.2

Toggle 0.22.2's commit message

Verified

This tag was signed with the committer’s verified signature.
noonio Noon
[0.22.2] - 2025.06.30

* Fix wrong hydra-script-tx-ids in networks.json

0.22.1

Toggle 0.22.1's commit message

Verified

This tag was signed with the committer’s verified signature.
noonio Noon
[0.22.1] - 2025.06.27

* Fix for bug where node got stalled at `ReplayingState` [#2089](#2089)

0.22.0

Toggle 0.22.0's commit message

Verified

This tag was signed with the committer’s verified signature.
noonio Noon
[0.22.0] - 2025.06.17

- Tested with `cardano-node 10.1.2` 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.

0.21.0

Toggle 0.21.0's commit message

Verified

This tag was signed with the committer’s verified signature.
ffakenz Franco Testagrossa
[0.21.0] - 2025-04-28

- **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](#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](https://hydra.family/head-protocol/unstable/docs/clients) to the docs

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

0.20.1

Toggle 0.20.1's commit message

Verified

This tag was signed with the committer’s verified signature.
ch1bo Sebastian Nagel
[0.20.1] - 2025-04-16

- Submit observations 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.

0.19.1

Toggle 0.19.1's commit message

Verified

This tag was signed with the committer’s verified signature.
ch1bo Sebastian Nagel
[0.19.1] - 2024-03-04

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