Skip to content

Commit 79d10c5

Browse files
ljoss17romac
andauthored
Release Hermes v1.8.1 (#3876)
* 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]>
1 parent cac00ee commit 79d10c5

24 files changed

+126
-36
lines changed

.changelog/unreleased/bug-fixes/ibc-relayer/3770-non-utf8-packet-data.md renamed to .changelog/v1.8.1/bug-fixes/ibc-relayer/3770-non-utf8-packet-data.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
Hermes does not assume anymore that an ICS-04 packet data is valid UTF-8,
33
by using the `packet_data_hex` attribute when assembling a packet from events, instead of the deprecated `packet_data` attribute.
44
Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON), disallowing eg. Protobuf-encoded payloads.
5-
The `packet_data` atttribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
5+
The `packet_data` attribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
66
[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
- Add a per-chain configuration `memo_overwrite` allowing users
2-
to overwite the relayer memo used for each transaction
2+
to overwrite the relayer memo used for each transaction
33
([\#3811](https://github.com/informalsystems/hermes/issues/3811))

.changelog/v1.8.1/summary.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
*March 6th, 2024*
2+
3+
This release improves reliability when relaying, more enhanced configuration and improved monitoring.
4+
5+
Reliability has been improved:
6+
* It is now possible to relay ICS-04 packets with non-UTF-8 payloads
7+
* Packet sequences are now verified for ordered channels before trying to relay
8+
9+
Additional per-chain configurations have been added:
10+
* `excluded_sequences` used to skip problematic packets when clearing
11+
* `memo_overwrite` allowing users to overwrite the relayer memo when chains have a
12+
strict limit for the size of the memo
13+
14+
Monitoring issues improvements:
15+
* A new metric `simulate_errors` which counts the number of failed simulated transactions
16+
* Out of gas error diagnostic gives more information and a dedicated entry to the guide has been added
17+
* Failed gas simulation will not be considered as unrecoverable for legacy chains
18+
* The compatibility check during the health-check has been improved will assess more correctly the versions
19+
for Ibc-Go and Cosmos SDK

CHANGELOG.md

+71
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,76 @@
11
# CHANGELOG
22

3+
## v1.8.1
4+
5+
*March 7th, 2024*
6+
7+
This v1.8.1 release brings better reliability when relaying, more enhanced configuration and improved monitoring.
8+
9+
Reliability has been improved:
10+
* It is now possible to relay ICS-04 packets with non-UTF-8 payloads
11+
* Packet sequences are now verified for ordered channels before trying to relay
12+
13+
Additional per-chain configurations have been added:
14+
* `excluded_sequences` used to skip problematic packets when clearing
15+
* `memo_overwrite` allowing users to overwrite the relayer memo when chains have a strict limit for the size of the memo.
16+
17+
Monitoring issues improvements:
18+
* A new metric `simulate_errors` which counts the number of failed simulated transactions
19+
* Out of gas error diagnostic gives more information and a dedicated entry to the guide has been added
20+
* Failed gas simulation will not be considered as unrecoverable for legacy chains.
21+
* The compatibility check during the health-check has been improved will assess more correctly the versions for Ibc-Go and Cosmos SDK
22+
23+
Special thanks to our contributors for their valuable additions to this release:
24+
25+
* Sergey (@freak12techno) for adding the `simulate_errors` metric ([#3845])
26+
* Martin Dyring-Andersen (@mdyring) for adding recovery from failed gas simulation for legacy chains ([#3792])
27+
28+
### BUG FIXES
29+
30+
- Allow relaying ICS-04 packets with non-UTF-8 payloads ([\#3770](https://github.com/informalsystems/hermes/issues/3770))
31+
Hermes does not assume anymore that an ICS-04 packet data is valid UTF-8,
32+
by using the `packet_data_hex` attribute when assembling a packet from events, instead of the deprecated `packet_data` attribute.
33+
Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON), disallowing eg. Protobuf-encoded payloads.
34+
The `packet_data` attribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
35+
- Improve reliability of compatibility check and fix parsing of expected modules versions ([\#3831](https://github.com/informalsystems/hermes/issues/3831))
36+
37+
[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417
38+
39+
### FEATURES
40+
41+
- Add a per-chain configuration `excluded_sequences` allowing users to specify a list of packet sequences which will not be cleared.
42+
This configuration has no impact on standard packet relaying.
43+
([\#3754](https://github.com/informalsystems/hermes/issues/3754))
44+
- Add a per-chain configuration `memo_overwrite` allowing users to overwrite the relayer memo used for each transaction
45+
([\#3811](https://github.com/informalsystems/hermes/issues/3811))
46+
- Added a new Prometheus metric `simulate_errors` for tracking when a transaction simulation fails, with the following labels:
47+
([\#3845](https://github.com/informalsystems/hermes/issues/3845))
48+
* `recoverable` (can the execution continue if this happened?)
49+
* `account` (account from which the tx was sent)
50+
* `error_description` (description of the error)
51+
52+
```
53+
# HELP simulate_errors_total Number of errors observed by Hermes when simulating a Tx
54+
# TYPE simulate_errors_total counter
55+
simulate_errors_total{account="osmo17ndx5qfku28ymxgmq6zq4a6d02dvpfjjul0hyh",error_description="Unknown error",recoverable="false",service_name="unknown_service",otel_scope_name="hermes",otel_scope_version=""} 4
56+
```
57+
58+
### IMPROVEMENTS
59+
60+
- Use the consensus state at client latest height in status CLI ([#3814](https://github.com/informalsystems/ibc-rs/issues/3814))
61+
- Add syncing check for gRPC node ([#3814](https://github.com/informalsystems/ibc-rs/issues/3814))
62+
- Improve the log diagnostic when an out of gas error is thrown.
63+
And a new entry related to gas error has been added to the Hermes guide.
64+
([\#3530](https://github.com/informalsystems/hermes/issues/3530))
65+
- Improve resilience when relaying on ordered channels.
66+
When relaying packets on an ordered channel, Hermes will now attempt
67+
to detect whether the next message to send has the sequence number
68+
expected on that channel. If there is a mismatch, then Hermes will trigger a packet
69+
clear on the channel to unblock it before resuming operations on that channel.
70+
([\#3540](https://github.com/informalsystems/hermes/issues/3540))
71+
- Recover from gas simulation failures on legacy chains.
72+
([\#3792](https://github.com/informalsystems/hermes/issues/3792))
73+
374
## v1.8.0
475
576
*January 23rd, 2024*

Cargo.lock

+8-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/chain-registry/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-chain-registry"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
keywords = ["cosmos", "ibc", "relayer", "chain", "registry"]
@@ -12,7 +12,7 @@ description = """
1212
"""
1313

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

crates/relayer-cli/Cargo.toml

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-relayer-cli"
3-
version = "1.8.0"
3+
version = "1.8.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"
@@ -25,11 +25,11 @@ telemetry = ["ibc-relayer/telemetry", "ibc-telemetry"]
2525
rest-server = ["ibc-relayer-rest"]
2626

2727
[dependencies]
28-
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types" }
29-
ibc-relayer = { version = "0.27.0", path = "../relayer" }
30-
ibc-telemetry = { version = "0.27.0", path = "../telemetry", optional = true }
31-
ibc-relayer-rest = { version = "0.27.0", path = "../relayer-rest", optional = true }
32-
ibc-chain-registry = { version = "0.27.0" , path = "../chain-registry" }
28+
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types" }
29+
ibc-relayer = { version = "0.27.1", path = "../relayer" }
30+
ibc-telemetry = { version = "0.27.1", path = "../telemetry", optional = true }
31+
ibc-relayer-rest = { version = "0.27.1", path = "../relayer-rest", optional = true }
32+
ibc-chain-registry = { version = "0.27.1" , path = "../chain-registry" }
3333

3434
clap = { version = "3.2", features = ["cargo"] }
3535
clap_complete = "3.2"

crates/relayer-rest/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-relayer-rest"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
authors = ["Informal Systems <[email protected]>"]
55
edition = "2021"
66
license = "Apache-2.0"
@@ -14,8 +14,8 @@ description = """
1414
"""
1515

1616
[dependencies]
17-
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types" }
18-
ibc-relayer = { version = "0.27.0", path = "../relayer" }
17+
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types" }
18+
ibc-relayer = { version = "0.27.1", path = "../relayer" }
1919

2020
crossbeam-channel = "0.5"
2121
serde = "1.0"

crates/relayer-rest/tests/mock.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ async fn version() {
6464

6565
let rest_api_version = VersionInfo {
6666
name: "ibc-relayer-rest".to_string(),
67-
version: "0.27.0".to_string(),
67+
version: "0.27.1".to_string(),
6868
};
6969

7070
let result: JsonResult<_, ()> = JsonResult::Success(vec![version.clone(), rest_api_version]);

crates/relayer-types/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-relayer-types"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"

crates/relayer/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-relayer"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"
@@ -21,8 +21,8 @@ telemetry = ["ibc-telemetry"]
2121

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

2727
subtle-encoding = "0.5"
2828
humantime-serde = "1.1.1"
@@ -110,7 +110,7 @@ version = "0.34.0"
110110
default-features = false
111111

112112
[dev-dependencies]
113-
ibc-relayer-types = { version = "0.27.0", path = "../relayer-types", features = ["mocks"] }
113+
ibc-relayer-types = { version = "0.27.1", path = "../relayer-types", features = ["mocks"] }
114114
serial_test = "3.0.0"
115115
env_logger = "0.11.1"
116116
test-log = { version = "0.2.14", features = ["trace"] }

crates/relayer/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//!
1616
//! For the IBC relayer binary, please see [Hermes] (`ibc-relayer-cli` crate).
1717
//!
18-
//! [Hermes]: https://docs.rs/ibc-relayer-cli/1.8.0/
18+
//! [Hermes]: https://docs.rs/ibc-relayer-cli/1.8.1/
1919
2020
extern crate alloc;
2121

crates/telemetry/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-telemetry"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"
@@ -13,7 +13,7 @@ description = """
1313
"""
1414

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

1818
once_cell = "1.19.0"
1919
opentelemetry = { version = "0.19.0", features = ["metrics"] }

guide/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ mdBook is a utility to create modern online books from Markdown files.
1010
This guide should be permanently deployed at its latest stable version at
1111
[hermes.informal.systems](https://hermes.informal.systems).
1212

13-
Current version: `v1.8.0`.
13+
Current version: `v1.8.1`.
1414

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

tools/integration-test/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-integration-test"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
edition = "2021"
55
rust-version = "1.71"
66
license = "Apache-2.0"

tools/test-framework/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ibc-test-framework"
3-
version = "0.27.0"
3+
version = "0.27.1"
44
edition = "2021"
55
license = "Apache-2.0"
66
readme = "README.md"
@@ -14,9 +14,9 @@ description = """
1414
"""
1515

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

0 commit comments

Comments
 (0)