diff --git a/CHANGELOG.md b/CHANGELOG.md index bfdc3e57b5f..3c219c2e69a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,17 @@ As a minor extension, we also keep a semantic version for the `UNRELEASED` changes. -## [0.16.0] - UNRELEASED +## [0.16.0] - 2024-04-03 - Tested with `cardano-node 8.9.0`, `cardano-cli 8.20.3.0` and `mithril 2412.0`. +- **BREAKING** Change to the `hydra-node` logs, monitoring and removal of `log-filter` executable: + - Renamed the `Event` data types to `Input` and consequently log items like `BeginEvent` to `BeginInput`. + - 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`. + - **BREAKING** Hydra scripts changed due to updates in the `plutus` toolchain: - Overall slight increase in script size. - 50% less memory usage in `close` and `contest` transactions. @@ -20,6 +27,11 @@ changes. - **BREAKING** Transaction serialization on hydra-node api and persisted data changed. +- Introduce `EventSource` and `EventSink` interfaces in `hydra-node`: + - These handles can now be used as "extension points" to make the `hydra-node` store and load its state differently or expose `StateEvent`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](https://hydra.family/head-protocol/adr/21/) + - 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. @@ -40,17 +52,6 @@ changes. input instead of the output datum. [#1266](https://github.com/input-output-hk/hydra/pull/1266) -- **BREAKING** Change to the `hydra-node` logs, monitoring and removal of `log-filter` executable: - - Renamed the `Event` data types to `Input` and consequently log items like `BeginEvent` to `BeginInput`. - - 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`. - -- Introduce `EventSource` and `EventSink` interfaces in `hydra-node`: - - These handles can now be used as "extension points" to make the `hydra-node` store and load its state differently or expose `StateEvent`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](https://hydra.family/head-protocol/adr/21/) ## [0.15.0] - 2024-01-18 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7e7166c2842..65e3dbacac6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -197,16 +197,17 @@ During development To perform a release of next ``: -1. Publish hydra scripts onto `preview`, `preprod`, and `mainnet` using the +1. Make sure all tests are passing. +2. Publish hydra scripts onto `preview`, `preprod`, and `mainnet` using the [smoke test][smoke-test] and put the transaction ids as new `` entries into [networks.json](./networks.json). -2. Update CHANGELOG.md by replacing `UNRELEASED` with a date in +3. Update CHANGELOG.md by replacing `UNRELEASED` with a date in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) and prepare contents. -3. Run `./release.sh ` -4. Check if all the bumped versions are correct. In particular, whether the demo +4. Run `./release.sh ` +5. Check if all the bumped versions are correct. In particular, whether the demo and tutorial would still work given the changelog. If everything is fine, push the branches `master`, `release` and the `` tag. -5. Create a github release page containing +6. Create a github release page containing * The released changes (formatted) and giving credit where credit is due * Built hydra (and cardano-node) binaries to the release using naming scheme: `hydra--.zip` where `platform` is `x86_64-linux` or @@ -281,7 +282,7 @@ To conduct this meeting and write this report: - Do not forget to record the meeting! - Ask for sharing rights after the meeting, by requesting sharing in Google Drive with yourself, and/or ask for making it publicly available. -3. Write the report in [this repository](https://github.com/cardano-scaling/website) +3. Write the report in [this repository](https://github.com/cardano-scaling/website) - Copy monthly report from last month, update dates, links to slides and closed issues - Use slides as starting point, to provide a short and sweet written account of what happened + The previous reports should serve as a guideline diff --git a/demo/docker-compose.yaml b/demo/docker-compose.yaml index 1945058adea..3edc1f36507 100644 --- a/demo/docker-compose.yaml +++ b/demo/docker-compose.yaml @@ -23,7 +23,7 @@ services: hydra-node-1: # NOTE: Make sure to use the same image in ./seed-devnet.sh - image: ghcr.io/input-output-hk/hydra-node:0.15.0 + image: ghcr.io/input-output-hk/hydra-node:0.16.0 build: context: ../ target: hydra-node @@ -60,7 +60,7 @@ services: hydra-node-2: # NOTE: Make sure to use the same image in ./seed-devnet.sh - image: ghcr.io/input-output-hk/hydra-node:0.15.0 + image: ghcr.io/input-output-hk/hydra-node:0.16.0 build: context: ../ target: hydra-node @@ -97,7 +97,7 @@ services: hydra-node-3: # NOTE: Make sure to use the same image in ./seed-devnet.sh - image: ghcr.io/input-output-hk/hydra-node:0.15.0 + image: ghcr.io/input-output-hk/hydra-node:0.16.0 build: context: ../ target: hydra-node @@ -133,7 +133,7 @@ services: restart: always hydra-tui-1: - image: ghcr.io/input-output-hk/hydra-tui:0.15.0 + image: ghcr.io/input-output-hk/hydra-tui:0.16.0 build: context: ../ target: hydra-tui @@ -152,7 +152,7 @@ services: ipv4_address: 172.16.238.11 hydra-tui-2: - image: ghcr.io/input-output-hk/hydra-tui:0.15.0 + image: ghcr.io/input-output-hk/hydra-tui:0.16.0 build: context: ../ target: hydra-tui @@ -171,7 +171,7 @@ services: ipv4_address: 172.16.238.21 hydra-tui-3: - image: ghcr.io/input-output-hk/hydra-tui:0.15.0 + image: ghcr.io/input-output-hk/hydra-tui:0.16.0 build: context: ../ target: hydra-tui diff --git a/demo/seed-devnet.sh b/demo/seed-devnet.sh index 9f1a9cfcb83..81866308a76 100755 --- a/demo/seed-devnet.sh +++ b/demo/seed-devnet.sh @@ -49,7 +49,7 @@ function hnode() { docker run --rm -it \ --pull always \ -v ${SCRIPT_DIR}/devnet:/devnet \ - ghcr.io/input-output-hk/hydra-node:0.15.0 -- ${@} + ghcr.io/input-output-hk/hydra-node:0.16.0 -- ${@} fi } diff --git a/docs/docs/tutorial/index.md b/docs/docs/tutorial/index.md index 44255d055b8..603d10ac255 100644 --- a/docs/docs/tutorial/index.md +++ b/docs/docs/tutorial/index.md @@ -41,7 +41,7 @@ components of the Cardano ecosystem, putting them in a `bin/` directory: ```shell mkdir -p bin -version=0.15.0 +version=0.16.0 curl -L -O https://github.com/input-output-hk/hydra/releases/download/${version}/hydra-x86_64-linux-${version}.zip unzip -d bin hydra-x86_64-linux-${version}.zip curl -L -o - https://github.com/input-output-hk/cardano-node/releases/download/8.9.0/cardano-node-8.9.0-linux.tar.gz \ @@ -56,7 +56,7 @@ chmod +x bin/* ```shell mkdir -p bin -version=0.15.0 +version=0.16.0 curl -L -O https://github.com/input-output-hk/hydra/releases/download/${version}/hydra-aarch64-darwin-${version}.zip unzip -d bin hydra-aarch64-darwin-${version}.zip curl -L -o - https://github.com/input-output-hk/cardano-node/releases/download/8.9.0/cardano-node-8.9.0-macos.tar.gz \ @@ -396,7 +396,7 @@ Let's start the `hydra-node` with all these parameters now: ```shell -version=0.15.0 +version=0.16.0 hydra-node \ --node-id "alice-node" \ --persistence-dir persistence-alice \ @@ -419,7 +419,7 @@ hydra-node \ ```shell -version=0.15.0 +version=0.16.0 hydra-node \ --node-id "bob-node" \ --persistence-dir persistence-bob \ diff --git a/hydra-cardano-api/hydra-cardano-api.cabal b/hydra-cardano-api/hydra-cardano-api.cabal index e38678a09e8..12e77498587 100644 --- a/hydra-cardano-api/hydra-cardano-api.cabal +++ b/hydra-cardano-api/hydra-cardano-api.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: hydra-cardano-api -version: 0.15.0 +version: 0.16.0 synopsis: A Haskell API for Cardano, tailored to the Hydra project. author: IOG copyright: 2022 IOG diff --git a/hydra-chain-observer/hydra-chain-observer.cabal b/hydra-chain-observer/hydra-chain-observer.cabal index 52d03ce4ede..6502f857024 100644 --- a/hydra-chain-observer/hydra-chain-observer.cabal +++ b/hydra-chain-observer/hydra-chain-observer.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: hydra-chain-observer -version: 0.15.0 +version: 0.16.0 synopsis: Hydra Chain Observer author: IOG copyright: 2023 IOG diff --git a/hydra-cluster/hydra-cluster.cabal b/hydra-cluster/hydra-cluster.cabal index bad73a9b9ba..2d4f3f7cdc1 100644 --- a/hydra-cluster/hydra-cluster.cabal +++ b/hydra-cluster/hydra-cluster.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: hydra-cluster -version: 0.15.0 +version: 0.16.0 synopsis: Integration test suite using a local cluster of cardano and hydra nodes diff --git a/hydra-explorer/hydra-explorer.cabal b/hydra-explorer/hydra-explorer.cabal index 3a04be7c6ab..ab3fe07b7c7 100644 --- a/hydra-explorer/hydra-explorer.cabal +++ b/hydra-explorer/hydra-explorer.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: hydra-explorer -version: 0.15.0 +version: 0.16.0 synopsis: Hydra Explorer author: IOG copyright: 2023 IOG diff --git a/hydra-node/hydra-node.cabal b/hydra-node/hydra-node.cabal index 4a2fbbaaaf7..878c90c7f67 100644 --- a/hydra-node/hydra-node.cabal +++ b/hydra-node/hydra-node.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: hydra-node -version: 0.15.0 +version: 0.16.0 synopsis: The Hydra node author: IOG copyright: 2022 IOG diff --git a/hydra-node/json-schemas/api.yaml b/hydra-node/json-schemas/api.yaml index efd9fb407b5..16e4788dd6c 100644 --- a/hydra-node/json-schemas/api.yaml +++ b/hydra-node/json-schemas/api.yaml @@ -1,7 +1,7 @@ asyncapi: '2.3.0' info: title: Hydra Node API - version: '0.15.0' + version: '0.16.0' description: | WebSocket/HTTP API for administrating & interacting with Hydra Heads: multi-party isomorphic state-channels for Cardano. diff --git a/hydra-plutus-extras/hydra-plutus-extras.cabal b/hydra-plutus-extras/hydra-plutus-extras.cabal index 7372883b97e..73f377b6141 100644 --- a/hydra-plutus-extras/hydra-plutus-extras.cabal +++ b/hydra-plutus-extras/hydra-plutus-extras.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: hydra-plutus-extras -version: 0.15.0 +version: 0.16.0 synopsis: Several extras and extensions of plutus-tx and plutus-ledger-api diff --git a/hydra-plutus/hydra-plutus.cabal b/hydra-plutus/hydra-plutus.cabal index 3b1291b0aec..3396c70584f 100644 --- a/hydra-plutus/hydra-plutus.cabal +++ b/hydra-plutus/hydra-plutus.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: hydra-plutus -version: 0.15.0 +version: 0.16.0 synopsis: Hydra Plutus Contracts author: IOG copyright: 2022 IOG diff --git a/hydra-prelude/hydra-prelude.cabal b/hydra-prelude/hydra-prelude.cabal index 4510ae9238f..c950c746cc8 100644 --- a/hydra-prelude/hydra-prelude.cabal +++ b/hydra-prelude/hydra-prelude.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: hydra-prelude -version: 0.15.0 +version: 0.16.0 synopsis: Custom Hydra Prelude used across other Hydra packages. author: IOG copyright: 2022 IOG diff --git a/hydra-test-utils/hydra-test-utils.cabal b/hydra-test-utils/hydra-test-utils.cabal index 64b7b16e689..ab6953a2110 100644 --- a/hydra-test-utils/hydra-test-utils.cabal +++ b/hydra-test-utils/hydra-test-utils.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: hydra-test-utils -version: 0.15.0 +version: 0.16.0 synopsis: Hydra utilities for testing, aka. "Test Prelude" author: IOG copyright: 2022 IOG diff --git a/hydra-tui/hydra-tui.cabal b/hydra-tui/hydra-tui.cabal index ac7b58bfef2..843ed209906 100644 --- a/hydra-tui/hydra-tui.cabal +++ b/hydra-tui/hydra-tui.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: hydra-tui -version: 0.15.0 +version: 0.16.0 synopsis: TUI for managing a Hydra node description: TUI for managing a Hydra node author: IOG diff --git a/networks.json b/networks.json index f5231702c63..4552706d6fa 100644 --- a/networks.json +++ b/networks.json @@ -2,16 +2,22 @@ "mainnet": { "0.13.0": "989e3ab136a2cdd3132a99975e76e02f62bcb03ba64ddbb5d2dfddffca8d390d", "0.14.0": "3ac58d3f9f35d8f2cb38d39639232c10cfe0b986728f672d26ffced944d74560", - "0.15.0": "7d998b617526d827dd69a495f5d5dc2c5e293b86a62ad61cb2fb5f2503cd87f0" + "0.15.0": "7d998b617526d827dd69a495f5d5dc2c5e293b86a62ad61cb2fb5f2503cd87f0", + "0.16.0": "2d52e5787b198daeb280f9de63e5dec126b1843b050e85b1642ff8e47cb6de73" }, "preprod": { "0.13.0": "f917dcd1fa2653e33d6d0ca5a067468595b546120c3085fab60848c34f92c265", "0.14.0": "d8ba8c488f52228b200df48fe28305bc311d0507da2c2420b10835bf00d21948", - "0.15.0": "8ce483e2d4b81f9254392afda1f85d1e123165665593228c39064691903f431a" + "0.15.0": "8ce483e2d4b81f9254392afda1f85d1e123165665593228c39064691903f431a", + "0.16.0": "6264cee4d5eab3fb58ab67f3899ecbcc0d7e72732a2d9c1c5d638115db6ca711" }, "preview": { "0.13.0": "1e00c627ec4b2ad0b4aa68068d3818ca0e41338c87e5504cda118c4050a98763", "0.14.0": "64deee72cd424d957ea0fddf71508429ecb65fea83a041fe9b708fc2ca973a8e", - "0.15.0": "c21b70a719112f76d318abcfee95499a27556ef4a18b1c62bc38e4b9c07ae3a6" + "0.15.0": "c21b70a719112f76d318abcfee95499a27556ef4a18b1c62bc38e4b9c07ae3a6", + "0.16.0": "1f34e4ee2404a5e4fc8ef970b7b8717af34c1a5a22107b82cde79c5d11da93b9" + }, + "sanchonet": { + "0.16.0": "af37f4f6bf7459d2ae1d6b2a1a2e4049465b62a8ebc308f3d6d6af68240a4419" } }