Skip to content

Commit

Permalink
Release Hermes v1.6.0 (#3476)
Browse files Browse the repository at this point in the history
* Bump Hermes version to 1.6.0

* Update dependencies

* Remove dep on chrono

* Update changelog

* Update changelog

* Update changelog and upgrading document

* Update changelog

* Fix typo

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

* Fix lint

---------

Signed-off-by: Romain Ruetschi <[email protected]>
Co-authored-by: Luca Joss <[email protected]>
  • Loading branch information
romac and ljoss17 authored Jul 19, 2023
1 parent f482b69 commit 1c1cf02
Show file tree
Hide file tree
Showing 31 changed files with 821 additions and 717 deletions.
16 changes: 16 additions & 0 deletions .changelog/v1.6.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
This release of Hermes notably features a new pull-based event source which fetches events from the chain periodically using
the `/block_results` RPC endpoint instead of getting them over WebSocket.

To use the new pull-based event source, set

```toml
event_source = { mode = 'pull', interval = '1s' }`
```

in the per-chain configuration.

### Note for operators

> ⚠️ Be aware that this release contains breaking changes to the Hermes configuration.
> ⚠️ Please consult the [`UPGRADING.md`](UPGRADING.md) document for more details.
93 changes: 93 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,98 @@
# CHANGELOG

## v1.6.0

This release of Hermes notably features a new pull-based event source which fetches events from the chain periodically using
the `/block_results` RPC endpoint instead of getting them over WebSocket.

To use the new pull-based event source, set

```toml
event_source = { mode = 'pull', interval = '1s' }`
```

in the per-chain configuration.

Check the `event_source` setting in the example [`config.toml`](config.toml) file in the Hermes repository for more details.

Additionally, it is now possible to skip the scanning phase during Hermes startup,
by disabling clients, connections and channels workers, and setting `clear_on_start` to `false`.
This significantly improve startup time when relaying on chains with hundreds or thousands of open channels, connections and clients.
See the [Performance tuning][perf-tuning] page of the guide for more information.

### Note for operators

> ⚠️ Be aware that this release contains breaking changes to the Hermes configuration.
> ⚠️ Please consult the [`UPGRADING.md`](UPGRADING.md) document for more details.
### BREAKING CHANGES

- The `websocket_addr` configuration option has been removed in favour of the new `event_source` setting.
Please consult the [`UPGRADING.md`](UPGRADING.md) document for more details.
- Bump MSRV to 1.71 ([\#3478](https://github.com/informalsystems/hermes/issues/3478))

### BUG FIXES

- [Relayer CLI](relayer-cli)
- Install CA certificates in Docker image for Hermes to be able to connect to TLS endpoints
([\#3423](https://github.com/informalsystems/hermes/issues/3423))
- [Relayer Library](relayer)
- Fix a bug where Hermes would discard the client updates
corresponding to the supporting headers returned by the light
client when assembling messages to relay from the operational data
([\#3465](https://github.com/informalsystems/hermes/issues/3465))

### FEATURES

- [Relayer Library](relayer)
- Add a pull-based event source which fetches events from the chain periodically using
the `/block_results` RPC endpoint instead of getting them over WebSocket.

To use the pull-based event source, set `event_source = { mode = 'pull', interval = '1s' }` in the per-chain configuration.

> **Warning**
> Only use this if you think Hermes is not getting all the events it should,
> eg. when relaying for a CosmWasm-enabled blockchain which emits IBC events
> in a smart contract where the events lack the `message` attribute key.
> See [\#3190](https://github.com/informalsystems/hermes/issues/3190) and [\#2809](https://github.com/informalsystems/hermes/issues/2809) for more background information.
> ([\#2850](https://github.com/informalsystems/hermes/issues/2850))
- [Integration Test Framework](tools/test-framework)
- Add integration tests for the Fee Grant module.
([#3416](https://github.com/informalsystems/hermes/issues/3416))
- Add a new trait `InterchainSecurityChainTest` and two functions
`run_binary_interchain_security_node_test` and `run_binary_interchain_security_channel_test`
which can be used to bootstrap a Provider and Consumer chain for integration tests.
Add a CI job to run tests with Gaia as a provider chain and Neutron as a Consumer chain.
([\#3450](https://github.com/informalsystems/hermes/issues/3450))
([\#3387](https://github.com/informalsystems/hermes/issues/3387))

### IMPROVEMENTS

- [Relayer CLI](relayer-cli)
- By disabling clients, connections and channels workers, and setting
`clear_on_start` to `false`, Hermes will now skip the scanning phase
during startup, significantly improve startup time when relaying on chains
with hundreds or thousands of open channels, connections and/or clients.
See the [Performance tuning][perf-tuning] page of the guide for more information.
([\#3403](https://github.com/informalsystems/hermes/issues/3403))
- [Relayer Library](relayer)
- Hermes will now automatically shutdown inactive workers to reduce the consumption of host system resources
([#3385](https://github.com/informalsystems/hermes/issues/3385))
- Query the /genesis RPC endpoint to retrieve the value of `max_expected_time_per_block` and use it for `max_block_time`.
([\#3211](https://github.com/informalsystems/hermes/issues/3211))
- [Telemetry & Metrics](telemetry)
- Add two new configurations for the telemetry `buckets`:
- `latency_submitted` used to specify the range and number of buckets for the `tx_latency_submitted` metric.
- `latency_confirmed` used to specify the range and number of buckets for the `tx_latency_confirmed` metric.
([#3366](https://github.com/informalsystems/hermes/issues/3366))
- [Integration Test Framework](tools/test-framework)
- Update ICA tests to use ibc-go's `simd` instead of `interchain-accounts-demo`.
([#3353](https://github.com/informalsystems/hermes/issues/3353))
- Update `simd` version used in integration tests from `v7.0.0` to `v7.1.0`
([\#3434](https://github.com/informalsystems/hermes/issues/3434))

[perf-tuning]: https://hermes.informal.systems/documentation/configuration/performance.html#3-slow-start

## v1.5.1

*June 5th, 2023*
Expand Down
Loading

0 comments on commit 1c1cf02

Please sign in to comment.