Skip to content

Commit

Permalink
Release Hermes v1.8.1 (#3876)
Browse files Browse the repository at this point in the history
* Build release changelog

* Bump version number

* Fix typos

* Update CHANGELOG.md

Co-authored-by: Romain Ruetschi <[email protected]>
Signed-off-by: Luca Joss <[email protected]>

* Update changelog

---------

Signed-off-by: Luca Joss <[email protected]>
Co-authored-by: Romain Ruetschi <[email protected]>
  • Loading branch information
ljoss17 and romac authored Mar 7, 2024
1 parent cac00ee commit 79d10c5
Show file tree
Hide file tree
Showing 24 changed files with 126 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
Hermes does not assume anymore that an ICS-04 packet data is valid UTF-8,
by using the `packet_data_hex` attribute when assembling a packet from events, instead of the deprecated `packet_data` attribute.
Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON), disallowing eg. Protobuf-encoded payloads.
The `packet_data` atttribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
The `packet_data` attribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
- Add a per-chain configuration `memo_overwrite` allowing users
to overwite the relayer memo used for each transaction
to overwrite the relayer memo used for each transaction
([\#3811](https://github.com/informalsystems/hermes/issues/3811))
19 changes: 19 additions & 0 deletions .changelog/v1.8.1/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
*March 6th, 2024*

This release improves reliability when relaying, more enhanced configuration and improved monitoring.

Reliability has been improved:
* It is now possible to relay ICS-04 packets with non-UTF-8 payloads
* Packet sequences are now verified for ordered channels before trying to relay

Additional per-chain configurations have been added:
* `excluded_sequences` used to skip problematic packets when clearing
* `memo_overwrite` allowing users to overwrite the relayer memo when chains have a
strict limit for the size of the memo

Monitoring issues improvements:
* A new metric `simulate_errors` which counts the number of failed simulated transactions
* Out of gas error diagnostic gives more information and a dedicated entry to the guide has been added
* Failed gas simulation will not be considered as unrecoverable for legacy chains
* The compatibility check during the health-check has been improved will assess more correctly the versions
for Ibc-Go and Cosmos SDK
71 changes: 71 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,76 @@
# CHANGELOG

## v1.8.1

*March 7th, 2024*

This v1.8.1 release brings better reliability when relaying, more enhanced configuration and improved monitoring.

Reliability has been improved:
* It is now possible to relay ICS-04 packets with non-UTF-8 payloads
* Packet sequences are now verified for ordered channels before trying to relay

Additional per-chain configurations have been added:
* `excluded_sequences` used to skip problematic packets when clearing
* `memo_overwrite` allowing users to overwrite the relayer memo when chains have a strict limit for the size of the memo.

Monitoring issues improvements:
* A new metric `simulate_errors` which counts the number of failed simulated transactions
* Out of gas error diagnostic gives more information and a dedicated entry to the guide has been added
* Failed gas simulation will not be considered as unrecoverable for legacy chains.
* The compatibility check during the health-check has been improved will assess more correctly the versions for Ibc-Go and Cosmos SDK

Special thanks to our contributors for their valuable additions to this release:

* Sergey (@freak12techno) for adding the `simulate_errors` metric ([#3845])
* Martin Dyring-Andersen (@mdyring) for adding recovery from failed gas simulation for legacy chains ([#3792])

### BUG FIXES

- Allow relaying ICS-04 packets with non-UTF-8 payloads ([\#3770](https://github.com/informalsystems/hermes/issues/3770))
Hermes does not assume anymore that an ICS-04 packet data is valid UTF-8,
by using the `packet_data_hex` attribute when assembling a packet from events, instead of the deprecated `packet_data` attribute.
Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON), disallowing eg. Protobuf-encoded payloads.
The `packet_data` attribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
- Improve reliability of compatibility check and fix parsing of expected modules versions ([\#3831](https://github.com/informalsystems/hermes/issues/3831))

[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417

### FEATURES

- Add a per-chain configuration `excluded_sequences` allowing users to specify a list of packet sequences which will not be cleared.
This configuration has no impact on standard packet relaying.
([\#3754](https://github.com/informalsystems/hermes/issues/3754))
- Add a per-chain configuration `memo_overwrite` allowing users to overwrite the relayer memo used for each transaction
([\#3811](https://github.com/informalsystems/hermes/issues/3811))
- Added a new Prometheus metric `simulate_errors` for tracking when a transaction simulation fails, with the following labels:
([\#3845](https://github.com/informalsystems/hermes/issues/3845))
* `recoverable` (can the execution continue if this happened?)
* `account` (account from which the tx was sent)
* `error_description` (description of the error)

```
# HELP simulate_errors_total Number of errors observed by Hermes when simulating a Tx
# TYPE simulate_errors_total counter
simulate_errors_total{account="osmo17ndx5qfku28ymxgmq6zq4a6d02dvpfjjul0hyh",error_description="Unknown error",recoverable="false",service_name="unknown_service",otel_scope_name="hermes",otel_scope_version=""} 4
```

### IMPROVEMENTS

- Use the consensus state at client latest height in status CLI ([#3814](https://github.com/informalsystems/ibc-rs/issues/3814))
- Add syncing check for gRPC node ([#3814](https://github.com/informalsystems/ibc-rs/issues/3814))
- Improve the log diagnostic when an out of gas error is thrown.
And a new entry related to gas error has been added to the Hermes guide.
([\#3530](https://github.com/informalsystems/hermes/issues/3530))
- Improve resilience when relaying on ordered channels.
When relaying packets on an ordered channel, Hermes will now attempt
to detect whether the next message to send has the sequence number
expected on that channel. If there is a mismatch, then Hermes will trigger a packet
clear on the channel to unblock it before resuming operations on that channel.
([\#3540](https://github.com/informalsystems/hermes/issues/3540))
- Recover from gas simulation failures on legacy chains.
([\#3792](https://github.com/informalsystems/hermes/issues/3792))

## v1.8.0

*January 23rd, 2024*
Expand Down
16 changes: 8 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions crates/chain-registry/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-chain-registry"
version = "0.27.0"
version = "0.27.1"
edition = "2021"
license = "Apache-2.0"
keywords = ["cosmos", "ibc", "relayer", "chain", "registry"]
Expand All @@ -12,7 +12,7 @@ description = """
"""

[dependencies]
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types" }
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types" }
ibc-proto = { version = "0.42.0", features = ["serde"] }
tendermint-rpc = { version = "0.34.0", features = ["http-client", "websocket-client"] }

Expand Down
12 changes: 6 additions & 6 deletions crates/relayer-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-relayer-cli"
version = "1.8.0"
version = "1.8.1"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -25,11 +25,11 @@ telemetry = ["ibc-relayer/telemetry", "ibc-telemetry"]
rest-server = ["ibc-relayer-rest"]

[dependencies]
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types" }
ibc-relayer = { version = "0.27.0", path = "../relayer" }
ibc-telemetry = { version = "0.27.0", path = "../telemetry", optional = true }
ibc-relayer-rest = { version = "0.27.0", path = "../relayer-rest", optional = true }
ibc-chain-registry = { version = "0.27.0" , path = "../chain-registry" }
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types" }
ibc-relayer = { version = "0.27.1", path = "../relayer" }
ibc-telemetry = { version = "0.27.1", path = "../telemetry", optional = true }
ibc-relayer-rest = { version = "0.27.1", path = "../relayer-rest", optional = true }
ibc-chain-registry = { version = "0.27.1" , path = "../chain-registry" }

clap = { version = "3.2", features = ["cargo"] }
clap_complete = "3.2"
Expand Down
6 changes: 3 additions & 3 deletions crates/relayer-rest/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-relayer-rest"
version = "0.27.0"
version = "0.27.1"
authors = ["Informal Systems <[email protected]>"]
edition = "2021"
license = "Apache-2.0"
Expand All @@ -14,8 +14,8 @@ description = """
"""

[dependencies]
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types" }
ibc-relayer = { version = "0.27.0", path = "../relayer" }
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types" }
ibc-relayer = { version = "0.27.1", path = "../relayer" }

crossbeam-channel = "0.5"
serde = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion crates/relayer-rest/tests/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ async fn version() {

let rest_api_version = VersionInfo {
name: "ibc-relayer-rest".to_string(),
version: "0.27.0".to_string(),
version: "0.27.1".to_string(),
};

let result: JsonResult<_, ()> = JsonResult::Success(vec![version.clone(), rest_api_version]);
Expand Down
2 changes: 1 addition & 1 deletion crates/relayer-types/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-relayer-types"
version = "0.27.0"
version = "0.27.1"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand Down
8 changes: 4 additions & 4 deletions crates/relayer/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-relayer"
version = "0.27.0"
version = "0.27.1"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -21,8 +21,8 @@ telemetry = ["ibc-telemetry"]

[dependencies]
ibc-proto = { version = "0.42.0", features = ["serde"] }
ibc-telemetry = { version = "0.27.0", path = "../telemetry", optional = true }
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types", features = ["mocks"] }
ibc-telemetry = { version = "0.27.1", path = "../telemetry", optional = true }
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types", features = ["mocks"] }

subtle-encoding = "0.5"
humantime-serde = "1.1.1"
Expand Down Expand Up @@ -110,7 +110,7 @@ version = "0.34.0"
default-features = false

[dev-dependencies]
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types", features = ["mocks"] }
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types", features = ["mocks"] }
serial_test = "3.0.0"
env_logger = "0.11.1"
test-log = { version = "0.2.14", features = ["trace"] }
Expand Down
2 changes: 1 addition & 1 deletion crates/relayer/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
//!
//! For the IBC relayer binary, please see [Hermes] (`ibc-relayer-cli` crate).
//!
//! [Hermes]: https://docs.rs/ibc-relayer-cli/1.8.0/
//! [Hermes]: https://docs.rs/ibc-relayer-cli/1.8.1/

extern crate alloc;

Expand Down
4 changes: 2 additions & 2 deletions crates/telemetry/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-telemetry"
version = "0.27.0"
version = "0.27.1"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -13,7 +13,7 @@ description = """
"""

[dependencies]
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types" }
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types" }

once_cell = "1.19.0"
opentelemetry = { version = "0.19.0", features = ["metrics"] }
Expand Down
2 changes: 1 addition & 1 deletion guide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ mdBook is a utility to create modern online books from Markdown files.
This guide should be permanently deployed at its latest stable version at
[hermes.informal.systems](https://hermes.informal.systems).

Current version: `v1.8.0`.
Current version: `v1.8.1`.

The version of this guide is aligned with the [versioning of the ibc crates](../README.md).

Expand Down
2 changes: 1 addition & 1 deletion tools/integration-test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-integration-test"
version = "0.27.0"
version = "0.27.1"
edition = "2021"
rust-version = "1.71"
license = "Apache-2.0"
Expand Down
8 changes: 4 additions & 4 deletions tools/test-framework/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ibc-test-framework"
version = "0.27.0"
version = "0.27.1"
edition = "2021"
license = "Apache-2.0"
readme = "README.md"
Expand All @@ -14,9 +14,9 @@ description = """
"""

[dependencies]
ibc-relayer-types = { version = "=0.27.0", path = "../../crates/relayer-types" }
ibc-relayer = { version = "=0.27.0", path = "../../crates/relayer" }
ibc-relayer-cli = { version = "=1.8.0", path = "../../crates/relayer-cli" }
ibc-relayer-types = { version = "=0.27.1", path = "../../crates/relayer-types" }
ibc-relayer = { version = "=0.27.1", path = "../../crates/relayer" }
ibc-relayer-cli = { version = "=1.8.1", path = "../../crates/relayer-cli" }
ibc-proto = { version = "0.42.0", features = ["serde"] }
tendermint-rpc = { version = "0.34.0", features = ["http-client", "websocket-client"] }

Expand Down

0 comments on commit 79d10c5

Please sign in to comment.