Skip to content

Commit

Permalink
Release version 0.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ch1bo committed Oct 27, 2022
1 parent 98158f6 commit d4f242b
Show file tree
Hide file tree
Showing 14 changed files with 55 additions and 49 deletions.
68 changes: 37 additions & 31 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,57 +8,63 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
As a minor extension, we also keep a semantic version for the `UNRELEASED`
changes.

## [0.8.0] - UNRELEASED
## [0.8.0] - 2022-10-27

- **BREAKING** Keep track of `contestationDeadline` instead of `remainingContestationPeriod` and fix `ReadyToFanout`.
- **BREAKING** Hydra keys now use the text envelope format.
+ `hydra-tools` executable now produces keys in the same format as cardano keys so this should make key handling simpler.
+ Take a look at the [example](https://github.com/input-output-hk/hydra-poc/blob/master/docs/docs/getting-started/quickstart.md#hydra-keys) on how to use `hydra-tools` to generate necessary hydra keys.

- **BREAKING** hydra-node command line flag `--node-id` is now mandatory.
+ Instead of `Host` we are using the `node-id` in the server messages like + `PeerConnected/Disconnected` which are also used in
+ the TUI to distinguish between different connected peers.
+ This also changes the way how `NodeId`s are represented on the API.

- **BREAKING** Keep track of `contestationDeadline` instead of `remainingContestationPeriod` and fix `ReadyToFanout`. [#483](https://github.com/input-output-hk/hydra-poc/pull/483)
+ Clients can now rely on `ReadyToFanout`, such that sending a `Fanout` input after seeing this output will never be "too early".
+ The `HeadIsClosed` server output now contains the deadline instead of the remaining time.
+ See `hydra-tui` for an example how to use the `contestationDeadline` and `ReadyToFanout`.
+ See [ADR20](./docs/adr/2022-08-02_020-handling-time.md) for details and the rationale.

- **BREAKING** Changed logs to improve legibility and trace on-chain posting errors.
- **BREAKING** Several changes to the API:
+ The `InitialSnapshot` only contains the `initialUTxO` as the rest of the information was useless. [#533](https://github.com/input-output-hk/hydra-poc/pull/533)
+ Renamed `CannotSpendInput -> InternalWalletError` and `CannotCoverFees -> NotEnoughFuel`. [#582](https://github.com/input-output-hk/hydra-poc/pull/582)

- **BREAKING** Changed logs to improve legibility and trace on-chain posting errors. [#472](https://github.com/input-output-hk/hydra-poc/pull/472)
+ Strip chain layer logs to only contain `TxId` instead of full transactions in the nominal cases.
+ Renamed log entry prefixes `Processing -> Begin` and `Processed -> End`.
+ Added `PostingFailed` log entry.

- **BREAKING** The `hydra-cluster` executable (our smoke test) does require `--publish-scripts` or `--hydra-scripts-tx-id` now as it may be provided with pre-published hydra scripts.

- **BREAKING** The `InitialSnapshot` only contains the `initialUTxO` as the rest of the information was useless.

- **BREAKING** Hydra keys now use the text envelope format.
+ `hydra-tools` executable now produces keys in the same format as cardano keys so this should make key handling simpler.
+ Take a look at the [example] (https://github.com/input-output-hk/hydra-poc/blob/master/docs/docs/getting-started/quickstart.md#hydra-keys)
+ on how to use `hydra-tools` to generate necessary hydra keys.

- **BREAKING** hydra-node command line flag `--node-id` is now mandatory.
+ Instead of `Host` we are using the `node-id` in the server messages like + `PeerConnected/Disconnected` which are also used in
+ the TUI to distinguish between different connected peers.

- The `hydra-node` does persist L1 and L2 states on disk now:

- The `hydra-node` does persist L1 and L2 states on disk now: [#187](https://github.com/input-output-hk/hydra-poc/issues/187)
+ New `--persistence-dir` command line argument to configure location.
+ Writes two JSON files `headstate` and `chainstate` to the persistence directory.
+ While introspectable, modification of these files is not recommended.

- Added a `hydra-tools` executable, which provides basic commands to help working with Hydra Heads:
+ Generate a pair of Hydra keys
+ Output the marker datum hash
- *Fixed bugs* in `hydra-node`:
+ Crash after `3k` blocks because of a failed time conversion. [#523](https://github.com/input-output-hk/hydra-poc/pull/523)
+ Internal wallet was losing memory of spent fuel UTxOs in presence of transaction failures. [#525](https://github.com/input-output-hk/hydra-poc/pull/525)
+ Node does not see some UTxOs sent to the internal wallet on startup. [#526](https://github.com/input-output-hk/hydra-poc/pull/526)
+ Prevent transactions from being resubmitted for application over and over. [#485](https://github.com/input-output-hk/hydra-poc/pull/485)

- Added some sample Terraform-based configuration files to spin up GCP and AWS Hydra node
- Log hydra-node command line arguments on start for easier debugging
- Changed the following data constructor names:
- *CannotSpendInput* to *InternalWalletError*
- *CannotCoverFees* to *NotEnoughFuel*
- *ErrNoPaymentUTxOFound* to *ErrNoFuelUTxOFound*
- Removed *ErrNoAvailableUTxO* data constructor
- Prevent misconfiguration of `hydra-node` by logging the command line options used and error out when:
+ provided number of Hydra parties exceeds a known working maximum (currently 4)
+ number of provided Cardano and Hydra keys is not the same

#### Fixed
- Added a `hydra-tools` executable, to help with generating Hydra keys and get hold of the marker datum hash. [#474](https://github.com/input-output-hk/hydra-poc/pull/474)

- Prevent transactions from being resubmitted for application over and over [#485](https://github.com/input-output-hk/hydra-poc/issues/485)
- Compute transaction costs as a "min fee" and report it in the [tx-cost benchmark](https://hydra.family/head-protocol/benchmarks/transaction-cost/).

- Update [hydra-node-options](https://hydra.family/head-protocol/docs/getting-started/quickstart/#hydra-node-options) section in docs.
- Verify cmd line options for hydra node and error out if:
- loaded number of peers is exceeded (currently 4)
- number of loaded cardano and hydra keys is not the same

- Publish test results on [website](https://hydra.family/head-protocol/benchmarks/tests/hydra-node/hspec-results). [#547](https://github.com/input-output-hk/hydra-poc/pull/547)

- Improved `hydra-tui` user experience:
+ Fixed too fast clearing of errors and other feedback [#506](https://github.com/input-output-hk/hydra-poc/pull/506)
+ Introduced a pending state to avoid resubmission of transactions [#526](https://github.com/input-output-hk/hydra-poc/pull/526)
+ Can show full history (scrollable) [#577](https://github.com/input-output-hk/hydra-poc/pull/577)

- Build & publish static Linux x86_64 executables on each [release](https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0) :point_down: [#546](https://github.com/input-output-hk/hydra-poc/pull/546)

## [0.7.0] - 2022-08-23

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The quickest way to get a `hydra-node` running is to use our [docker
images](https://github.com/orgs/input-output-hk/packages?repo_name=hydra-poc).

```sh
docker pull ghcr.io/input-output-hk/hydra-node:0.7.0
docker pull ghcr.io/input-output-hk/hydra-node:0.8.0
docker run --rm ghcr.io/input-output-hk/hydra-node --help
```

Expand Down
12 changes: 6 additions & 6 deletions demo/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ services:
]

hydra-node-1:
image: ghcr.io/input-output-hk/hydra-node:0.7.0
image: ghcr.io/input-output-hk/hydra-node:0.8.0
build:
context: ../
target: hydra-node
Expand Down Expand Up @@ -58,7 +58,7 @@ services:
restart: always

hydra-node-2:
image: ghcr.io/input-output-hk/hydra-node:0.7.0
image: ghcr.io/input-output-hk/hydra-node:0.8.0
build:
context: ../
target: hydra-node
Expand Down Expand Up @@ -94,7 +94,7 @@ services:
restart: always

hydra-node-3:
image: ghcr.io/input-output-hk/hydra-node:0.7.0
image: ghcr.io/input-output-hk/hydra-node:0.8.0
build:
context: ../
target: hydra-node
Expand Down Expand Up @@ -130,7 +130,7 @@ services:
restart: always

hydra-tui-1:
image: ghcr.io/input-output-hk/hydra-tui:0.7.0
image: ghcr.io/input-output-hk/hydra-tui:0.8.0
build:
context: ../
target: hydra-tui
Expand All @@ -149,7 +149,7 @@ services:
ipv4_address: 172.16.238.11

hydra-tui-2:
image: ghcr.io/input-output-hk/hydra-tui:0.7.0
image: ghcr.io/input-output-hk/hydra-tui:0.8.0
build:
context: ../
target: hydra-tui
Expand All @@ -168,7 +168,7 @@ services:
ipv4_address: 172.16.238.21

hydra-tui-3:
image: ghcr.io/input-output-hk/hydra-tui:0.7.0
image: ghcr.io/input-output-hk/hydra-tui:0.8.0
build:
context: ../
target: hydra-tui
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ The quickest way to get a hydra-node running is to use our Docker images:
<TerminalWindow>
```
docker pull ghcr.io/input-output-hk/hydra-node:0.7.0
docker pull ghcr.io/input-output-hk/hydra-node:0.8.0
docker run --rm ghcr.io/input-output-hk/hydra-node --help
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ hydra-nodeを動かす一番迅速な方法は、専用のDockerイメージを
<TerminalWindow>
```
docker pull ghcr.io/input-output-hk/hydra-node:0.7.0
docker pull ghcr.io/input-output-hk/hydra-node:0.8.0
docker run --rm ghcr.io/input-output-hk/hydra-node --help
```
Expand Down
2 changes: 1 addition & 1 deletion hydra-cardano-api/hydra-cardano-api.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: hydra-cardano-api
version: 0.7.0
version: 0.8.0
synopsis: A Haskell API for Cardano, tailored to the Hydra project.
author: IOG
copyright: 2022 IOG
Expand Down
2 changes: 1 addition & 1 deletion hydra-node/json-schemas/api.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
asyncapi: '2.3.0'
info:
title: Hydra Node API
version: '0.7.0'
version: '0.8.0'
description: |
WebSocket API for administrating Hydra heads: multi-party isomorphic state-channels for Cardano.
Expand Down
2 changes: 1 addition & 1 deletion hydra-plutus/hydra-plutus.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: hydra-plutus
version: 0.7.0
version: 0.8.0
synopsis: Hydra Plutus Contracts
author: IOG
copyright: 2022 IOG
Expand Down
2 changes: 1 addition & 1 deletion hydra-prelude/hydra-prelude.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: hydra-prelude
version: 0.7.0
version: 0.8.0
synopsis: Custom Hydra Prelude used across other Hydra packages.
author: IOG
copyright: 2022 IOG
Expand Down
2 changes: 1 addition & 1 deletion hydra-test-utils/hydra-test-utils.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: hydra-test-utils
version: 0.7.0
version: 0.8.0
synopsis: Hydra utilities for testing, aka. "Test Prelude"
author: IOG
copyright: 2022 IOG
Expand Down
2 changes: 1 addition & 1 deletion sample-node-config/aws/scripts/configure-testnet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ echo "Including hydra env variables"
NETWORK_MAGIC=$(jq .networkMagic cardano-configurations/network/preview/genesis/shelley.json)
echo "export NETWORK_MAGIC=$NETWORK_MAGIC" >> /home/ubuntu/.bashrc

# this is manually hardcoded from https://github.com/input-output-hk/hydra-poc/releases/tag/0.7.0
# this is manually hardcoded from https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0
# perhaps there would be a way to look those up in the Chain?
HYDRA_SCRIPTS_TX_ID=bde2ca1f404200e78202ec37979174df9941e96fd35c05b3680d79465853a246
echo "export HYDRA_SCRIPTS_TX_ID=$HYDRA_SCRIPTS_TX_ID" >> /home/ubuntu/.bashrc
Expand Down
2 changes: 1 addition & 1 deletion sample-node-config/gcp/scripts/configure-testnet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ git clone https://github.com/input-output-hk/cardano-configurations

export NETWORK_MAGIC=$(jq .networkMagic cardano-configurations/network/preview/genesis/shelley.json)

# this is manually hardcoded from https://github.com/input-output-hk/hydra-poc/releases/tag/0.7.0
# this is manually hardcoded from https://github.com/input-output-hk/hydra-poc/releases/tag/0.8.0
# perhaps there would be a way to look those up in the Chain?
export HYDRA_SCRIPTS_TX_ID=bde2ca1f404200e78202ec37979174df9941e96fd35c05b3680d79465853a246

Expand Down
2 changes: 1 addition & 1 deletion sample-node-config/nixos/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ For this, we do not need a service definition, but can simply use `docker` via S
ssh -t example docker run --rm -it \
-v /data:/data \
--network host \
ghcr.io/input-output-hk/hydra-tui:0.7.0 \
ghcr.io/input-output-hk/hydra-tui:0.8.0 \
--connect 0.0.0.0:4001 \
--node-socket /data/cardano-node/node.socket \
--network-id 2 \
Expand Down
2 changes: 1 addition & 1 deletion sample-node-config/nixos/hydraw.nix
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ in
networkMagic = "2";
in
{
image = "ghcr.io/input-output-hk/hydra-node:0.7.0";
image = "ghcr.io/input-output-hk/hydra-node:0.8.0";
volumes = [
"/data/cardano-node:/cardano-node:ro"
"/data/hydra-node:/data:ro"
Expand Down

0 comments on commit d4f242b

Please sign in to comment.