Skip to content

Commit 39036d1

Browse files
ljoss17romac
andauthored
Release Hermes v1.8.0 (#3802)
* WIP: setup v1.8.0 release * Update changelog after merge * Update Cargo.lock * Update changelog summary and re-order changelog entries * Update release date * Remove links from sections in changelog --------- Co-authored-by: Romain Ruetschi <[email protected]>
1 parent 04868db commit 39036d1

29 files changed

+396
-317
lines changed

.changelog/v1.8.0/summary.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
*January 23rd, 2024*
2+
3+
This v1.8.0 release introduces new features and improvements to Hermes.
4+
5+
One key feature is that Hermes is now compatible with both the legacy `UpgradeProposal` and the newer `MsgIbcSoftwareUpgrade` message when upgrading a chain.
6+
This allows Hermes to be compatible with ibc-go v8.0.0. The compatibility check that Hermes performs on startup has been updated to reflect this.
7+
8+
Additional configuration settings have been added:
9+
10+
- The new global settings `ics20_max_memo_size` and `ics20_max_receiver_size` allow users to specify a limit for the size of the memo and receiver fields for ICS20 packets. Any packet with either field having a size exceeding the configured values will not be relayed.
11+
- The new per-chain setting `query_packets_chunk_size` allows users to specify how many packets are queried at once from the chain when clearing pending packets. This is useful to tweak when there are many large pending packets and the RPC endpoints times out or refuses to answer the pending packets query.
12+
- The new per-chain setting `client_refresh_rate` can be use to specify how often the clients referencing this chain should be refreshed. The rate is expressed as a fraction of the trusting period.
13+
- The new per-chain setting `dynamic_gas_price` can be enabled to have the relayer query for and use a dynamic gas price instead of using the static `gas_price` specified in the config. This should only be used for chains which have a [EIP-1559][eip-1559]-like fee market enabled and support the `osmosis.txfees.v1beta1.Query/GetEipBaseFee` gRPC query.
14+
15+
Telemetry now features new metrics:
16+
- Monitoring the ICS20 packets filtered due to the memo and/or receiver field size exceeding the configured limits.
17+
- Monitoring the distribution of dynamic gas fees queried from the chain, if enabled.
18+
19+
[eip-1559]: https://metamask.io/1559/

CHANGELOG.md

+93
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,98 @@
11
# CHANGELOG
22

3+
## v1.8.0
4+
5+
*January 23rd, 2024*
6+
7+
This v1.8.0 release introduces new features and improvements to Hermes.
8+
9+
One key feature is that Hermes is now compatible with both the legacy `UpgradeProposal` and the newer `MsgIbcSoftwareUpgrade` message when upgrading a chain.
10+
This allows Hermes to be compatible with ibc-go v8.0.0. The compatibility check that Hermes performs on startup has been updated to reflect this.
11+
12+
Additional configuration settings have been added:
13+
14+
- The new global settings `ics20_max_memo_size` and `ics20_max_receiver_size` allow users to specify a limit for the size of the memo and receiver fields for ICS20 packets. Any packet with either field having a size exceeding the configured values will not be relayed.
15+
- The new per-chain setting `query_packets_chunk_size` allows users to specify how many packets are queried at once from the chain when clearing pending packets. This is useful to tweak when there are many large pending packets and the RPC endpoints times out or refuses to answer the pending packets query.
16+
- The new per-chain setting `client_refresh_rate` can be use to specify how often the clients referencing this chain should be refreshed. The rate is expressed as a fraction of the trusting period.
17+
- The new per-chain setting `dynamic_gas_price` can be enabled to have the relayer query for and use a dynamic gas price instead of using the static `gas_price` specified in the config. This should only be used for chains which have a [EIP-1559][eip-1559]-like fee market enabled and support the `osmosis.txfees.v1beta1.Query/GetEipBaseFee` gRPC query.
18+
19+
Telemetry now features new metrics:
20+
- Monitoring the ICS20 packets filtered due to the memo and/or receiver field size exceeding the configured limits.
21+
- Monitoring the distribution of dynamic gas fees queried from the chain, if enabled.
22+
23+
[eip-1559]: https://metamask.io/1559/
24+
25+
### BREAKING CHANGES
26+
27+
- Bump MSRV to 1.71 ([\#3688](https://github.com/informalsystems/hermes/issues/3688))
28+
29+
### FEATURES
30+
31+
- Relayer
32+
- Use legacy `UpgradeProposal` or newer `MsgIbcSoftwareUpgrade` message when upgrading
33+
a chain depending on whether the chain is running IBC-Go v8 or older.
34+
([\#3696](https://github.com/informalsystems/hermes/issues/3696))
35+
- Add a new per-chain configuration table `dynamic_gas_price` which enables
36+
querying the current gas price from the chain instead of the static `gas_price`,
37+
when the chain has [EIP-1559][eip]-like dynamic gas price.
38+
The new configuration setting can be configured per-chain as follows:
39+
```toml
40+
dynamic_gas_price = { enabled = true, multiplier = 1.1, max = 0.6 }
41+
```
42+
At the moment, only chains which support the `osmosis.txfees.v1beta1.Query/GetEipBaseFee`
43+
query can be used with dynamic gas price enabled.
44+
([\#3738](https://github.com/informalsystems/hermes/issues/3738))
45+
46+
[eip]: https://metamask.io/1559/
47+
- Add two new packet configurations:
48+
* `ics20_max_memo_size` which filters ICS20 packets with memo field bigger than the configured value
49+
* `ics20_max_receiver_size` which filters ICS20 packets with receiver field bigger than the configured value
50+
([\#3766](https://github.com/informalsystems/hermes/issues/3766))
51+
- Add a `client_refresh_rate` setting to specify the rate at which to refresh clients referencing this chain, relative to its trusting period.
52+
([\#3402](https://github.com/informalsystems/hermes/issues/3402))
53+
- Add a `--packet-sequences` flag to the `clear packets`, `tx packet-recv`, and `tx packet-ack` commands.
54+
When this flag is specified, these commands will only clear the packets with the specified sequence numbers
55+
on the given chain. If not provided, all pending packets will be cleared on both chains, as before.
56+
([\#3672](https://github.com/informalsystems/hermes/issues/3672))
57+
58+
This flag takes either a single sequence number or a range of sequences numbers.
59+
Each element of the comma-separated list must be either a single sequence number or
60+
a range of sequence numbers.
61+
62+
Examples:
63+
- `10` will clear a single packet with sequence number `10`
64+
- `1,2,3` will clear packets with sequence numbers `1, 2, 3`
65+
- `1..5` will clear packets with sequence numbers `1, 2, 3, 4, 5`
66+
- `..5` will clear packets with sequence numbers `1, 2, 3, 4, 5`
67+
- `5..` will clear packets with sequence numbers greater than or equal to `5`
68+
- `..5,10..20,25,30..` will clear packets with sequence numbers `1, 2, 3, 4, 5, 10, 11, ..., 20, 25, 30, 31, ...`
69+
- `..5,10..20,25,30..` will clear packets with sequence numbers `1, 2, 3, 4, 5, 10, 11, ..., 20, 25, 30, 31, ...`
70+
- Add a `--gov-account` option to `hermes tx upgrade-chain` to specify the authority account used to sign upgrade proposal for chains running IBC-Go v8+.
71+
([\#3696](https://github.com/informalsystems/hermes/issues/3696))
72+
- Add a `query_packets_chunk_size` config option and a `--query-packets-chunk-size` flag to the `clear packets` CLI to configure how
73+
many packets to query at once from the chain when clearing pending packets. Lower this setting if one or more of packets you are
74+
trying to clear are huge and make the packet query time out or fail.
75+
([\#3743](https://github.com/informalsystems/hermes/issues/3743))
76+
- Telemetry & Metrics
77+
- Add three metrics related to EIP gas price:
78+
- `dynamic_gas_queried_fees` contains data on the queried values before applying any filter
79+
- `dynamic_gas_queried_success_fees` contains data on the queried values if the query was successful and before applying any filter
80+
- `dynamic_gas_paid_fees` contains data on the queried values after applying the `max` filter
81+
([\#3738](https://github.com/informalsystems/hermes/issues/3738))
82+
- Add a new metric `filtered_packets` which counts the number of packets filtered due to having a memo or receiver field too big
83+
([\#3794](https://github.com/informalsystems/hermes/issues/3794))
84+
- Integration Test Framework
85+
- Add a test for asynchronous Interchain Query relaying
86+
([\#3455](https://github.com/informalsystems/hermes/issues/3455))
87+
- Add an ICA test to assert a channel correctly closes after a packet time-outs
88+
([\#3778](https://github.com/informalsystems/hermes/issues/3778))
89+
90+
### IMPROVEMENTS
91+
92+
- Relayer CLI
93+
- Update compatibility check to allow IBC-Go 4.1.1 to 8.x and SDK 0.45.x to 0.50.x.
94+
([\#3745](https://github.com/informalsystems/hermes/issues/3745))
95+
396
## v1.7.4
497

598
*December 15th, 2023*

0 commit comments

Comments
 (0)