Skip to content

Commit

Permalink
Release v0.11.0 (informalsystems#1818)
Browse files Browse the repository at this point in the history
* Bump all crates to v0.11.0 and `ibc-proto` to v0.15.0

* Build changelog

* Properly deal with error in `ChainScanner::counterparty_connection_state`

* Add info on completions to the guide

* Enable filtering by default and remove `mode.packets.filter` config option (informalsystems#1819)

* Enable filtering by default and remove `mode.packets.filter` config option

* Add changelog entry

* Remove `filter` option in various config files used on CI

* Update comment in main config file

* Update changelog for 1817

* Fix broken link in changelog

Co-authored-by: Mikhail Zabaluev <mikhail@informal.systems>
  • Loading branch information
2 people authored and michaelfig committed Feb 4, 2022
1 parent 334774e commit 735dfa2
Show file tree
Hide file tree
Showing 53 changed files with 250 additions and 96 deletions.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Remove `mode.packets.filter` config option and enable filtering by default
([#1817](https://github.com/informalsystems/ibc-rs/issues/1817))
36 changes: 36 additions & 0 deletions .changelog/v0.11.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
This release notably speeds up the startup time of Hermes,
adds options to the `create client` command to customize the client parameters,
makes the deposit denomination configurable in `tx raw upgrade-chain` via a new `--denom` flag,
and adds a `completions` CLI command to generate shell auto-completion scripts.

### Note for operators

This release includes a breaking change, which requires the configuration file to be edited.
The `mode.packets.filter` configuration option has been removed and is now enabled by default.

Before running Hermes v0.11.0, make sure you remove the `mode.packets.filter` option from the configuration file.

```diff
--- a/config.toml
+++ b/config.toml
@@ -50,18 +50,6 @@ clear_interval = 100
# Whether or not to clear packets on start. [Default: false]
clear_on_start = true

-# Enable or disable the filtering mechanism.
-# Valid options are 'true', 'false'.
-# Currently Hermes supports two filters:
-# 1. Packet filtering on a per-chain basis; see the chain-specific
-# filter specification below in [chains.packet_filter].
-# 2. Filter for all activities based on client state trust threshold; this filter
-# is parametrized with (numerator = 1, denominator = 3), so that clients with
-# thresholds different than this will be ignored.
-# If set to 'true', both of the above filters will be enabled.
-# [Default: false]
-filter = false
-
# Toggle the transaction confirmation mechanism.
# The tx confirmation mechanism periodically queries the `/tx_search` RPC
# endpoint to check that previously-submitted transactions
```

92 changes: 92 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,97 @@
# CHANGELOG

## v0.11.0
*January 27th, 2022*

This release notably speeds up the startup time of Hermes,
adds options to the `create client` command to customize the client parameters,
makes the deposit denomination configurable in `tx raw upgrade-chain` via a new `--denom` flag,
and adds a `completions` CLI command to generate shell auto-completion scripts.

### Note for operators

This release includes a breaking change, which requires the configuration file to be edited.
The `mode.packets.filter` configuration option has been removed and is now enabled by default.

Before running Hermes v0.11.0, make sure you remove the `mode.packets.filter` option from the configuration file.

```diff
--- a/config.toml
+++ b/config.toml
@@ -50,18 +50,6 @@ clear_interval = 100
# Whether or not to clear packets on start. [Default: false]
clear_on_start = true

-# Enable or disable the filtering mechanism.
-# Valid options are 'true', 'false'.
-# Currently Hermes supports two filters:
-# 1. Packet filtering on a per-chain basis; see the chain-specific
-# filter specification below in [chains.packet_filter].
-# 2. Filter for all activities based on client state trust threshold; this filter
-# is parametrized with (numerator = 1, denominator = 3), so that clients with
-# thresholds different than this will be ignored.
-# If set to 'true', both of the above filters will be enabled.
-# [Default: false]
-filter = false
-
# Toggle the transaction confirmation mechanism.
# The tx confirmation mechanism periodically queries the `/tx_search` RPC
# endpoint to check that previously-submitted transactions
```


### BREAKING CHANGES

- General
- Update MSRV to Rust 1.58 ([#1765](https://github.com/informalsystems/ibc-rs/issues/1765))
- Update tendermint-rs dependencies to 0.23.5 ([#1767](https://github.com/informalsystems/ibc-rs/issues/1767))
- [Relayer Library](relayer)
- Added a `denom` member to `upgrade_chain::UpgradePlanOptions`
([#1662](https://github.com/informalsystems/ibc-rs/issues/1662))
- [IBC Modules](modules)
- Hide `ibc::Timestamp::now()` behind `clock` feature flag ([#1612](https://github.com/informalsystems/ibc-rs/issues/1612))

### BUG FIXES

- [IBC Modules](modules)
- Verify the client consensus proof against the client's consensus state root and not the host's state root
[#1745](https://github.com/informalsystems/ibc-rs/issues/1745)
- Initialize consensus metadata on client creation
([#1763](https://github.com/informalsystems/ibc-rs/issues/1763))

### IMPROVEMENTS

- General
- Improve startup time of the relayer ([#1705](https://github.com/informalsystems/ibc-rs/issues/1705))
* When scanning a chain with filtering enabled and an allow list, skip scanning all the clients and query the allowed channels directly. This results in much fewer queries and a faster start.
* Add a `--full-scan` option to `hermes start` to opt out of the fast start mechanism and do a full scan.
- Update `tendermint-rs` to v0.23.4 and harmonize the dependencies to use a single TLS stack.
A system installation of OpenSSL is no longer required to build Hermes.
([#1641](https://github.com/informalsystems/ibc-rs/issues/1641))
- Remove 1 second sleep in `generate_tm_block` during testing with mock context.
([#1687](https://github.com/informalsystems/ibc-rs/issues/1687))
- [IBC Modules](modules)
- Extract all `ics24_host::Path` variants into their separate types
([#1760](https://github.com/informalsystems/ibc-rs/issues/1760))
- Disallow empty `CommitmentPrefix` and `CommitmentProofBytes`
([#1761](https://github.com/informalsystems/ibc-rs/issues/1761))
- [Relayer Library](relayer)
- Allow `ChainEndpoint` implementations to fetch any types of clients
and consensus states ([#1481](https://github.com/informalsystems/ibc-rs/issues/1481))
- More structural logging in relayer, using tracing spans and key-value pairs.
([#1491](https://github.com/informalsystems/ibc-rs/pull/1491))
- Improved documention w.r.t. keys for Ethermint-based chains
([#1785](https://github.com/informalsystems/ibc-rs/issues/1785))
- [Relayer CLI](relayer-cli)
- Add custom options to the `create client` command.
([#836](https://github.com/informalsystems/ibc-rs/issues/836))
- Make the deposit denomination configurable in `tx raw upgrade-chain` via a new `--denom` flag.
([#1662](https://github.com/informalsystems/ibc-rs/issues/1662))
- Update to abscissa_core 0.6.0-rc.0 and clap 3.x
([#1777](https://github.com/informalsystems/ibc-rs/pull/1777))
- Add `completions` CLI command to generate shell auto-completion scripts.
([#1789](https://github.com/informalsystems/ibc-rs/pull/1789))

## v0.10.0
*January 13th, 2021*

Expand Down
14 changes: 7 additions & 7 deletions Cargo.lock

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

3 changes: 1 addition & 2 deletions ci/simple_config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ enabled = false
enabled = true
clear_interval = 100
clear_on_start = true
filter = false
tx_confirmation = true

[telemetry]
Expand Down Expand Up @@ -58,4 +57,4 @@ max_tx_size = 2097152
gas_price = { price = 0.001, denom = 'stake' }
clock_drift = '5s'
trusting_period = '14days'
trust_threshold = { numerator = '1', denominator = '3' }
trust_threshold = { numerator = '1', denominator = '3' }
18 changes: 3 additions & 15 deletions config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,6 @@ clear_interval = 100
# Whether or not to clear packets on start. [Default: false]
clear_on_start = true

# Enable or disable the filtering mechanism.
# Valid options are 'true', 'false'.
# Currently Hermes supports two filters:
# 1. Packet filtering on a per-chain basis; see the chain-specific
# filter specification below in [chains.packet_filter].
# 2. Filter for all activities based on client state trust threshold; this filter
# is parametrized with (numerator = 1, denominator = 3), so that clients with
# thresholds different than this will be ignored.
# If set to 'true', both of the above filters will be enabled.
# [Default: false]
filter = false

# Toggle the transaction confirmation mechanism.
# The tx confirmation mechanism periodically queries the `/tx_search` RPC
# endpoint to check that previously-submitted transactions
Expand Down Expand Up @@ -207,9 +195,9 @@ trust_threshold = { numerator = '1', denominator = '3' }
memo_prefix = ''

# This section specifies the filters for policy based relaying.
# Default: no policy/ filters
# The section is ignored if the global 'filter' option is set to 'false'.
# If the global 'filter' option is set to 'true' and this section is missing then no filtering is performed for this chain.
#
# Default: no policy / filters, allow all packets on all channels.
#
# Only packet filtering based on channel identifier can be specified.
# A channel filter has two fields:
# 1. `policy` - one of two types are supported:
Expand Down
1 change: 0 additions & 1 deletion docs/architecture/adr-002-ibc-relayer.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,6 @@ enabled = false
enabled = true
clear_interval = 100
clear_on_start = true
filter = false
tx_confirmation = true

[[chains]]
Expand Down
2 changes: 1 addition & 1 deletion guide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,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: `0.10.0`.
Current version: `0.11.0`.

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

Expand Down
2 changes: 1 addition & 1 deletion guide/src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Summary

# Hermes (v0.10.0)
# Hermes (v0.11.0)

---
- [Introduction](./index.md)
Expand Down
2 changes: 1 addition & 1 deletion guide/src/commands/global.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Hermes accepts global options which affect all commands.

```shell
hermes 0.10.0
hermes 0.11.0
Informal Systems <hello@informal.systems>
Implementation of `hermes`, an IBC Relayer developed in Rust.

Expand Down
5 changes: 2 additions & 3 deletions guide/src/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ hermes [-c CONFIG_FILE] COMMAND
The configuration file must have one `global` section, and one `chains` section for each chain.

> **Note:** As of 0.6.0, the Hermes configuration file is self-documented.
> Please read the configuration file [`config.toml`](https://github.com/informalsystems/ibc-rs/blob/v0.10.0/config.toml)
> Please read the configuration file [`config.toml`](https://github.com/informalsystems/ibc-rs/blob/v0.11.0/config.toml)
> itself for the most up-to-date documentation of parameters.
By default, Hermes will relay on all channels available between all the configured chains.
Expand All @@ -36,7 +36,7 @@ For example, if there are only two chains configured, then Hermes will only rela
i.e. the two chains will serve as a source for each other, and likewise as a destination for each other's relevant events.
Hermes will ignore all events that pertain to chains which are unknown (ie. not present in config.toml).

To restrict relaying on specific channels, or uni-directionally, you can use [packet filtering policies](https://github.com/informalsystems/ibc-rs/blob/v0.10.0/config.toml#L207-L224).
To restrict relaying on specific channels, or uni-directionally, you can use [packet filtering policies](https://github.com/informalsystems/ibc-rs/blob/v0.11.0/config.toml#L207-L224).

## Adding private keys

Expand Down Expand Up @@ -68,7 +68,6 @@ enabled = false
enabled = true
clear_interval = 100
clear_on_start = true
filter = false
tx_confirmation = true

[rest]
Expand Down
2 changes: 1 addition & 1 deletion guide/src/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Hermes Guide (v0.10.0)
# Hermes Guide (v0.11.0)


Hermes is a an open-source Rust implementation of a relayer for the
Expand Down
Loading

0 comments on commit 735dfa2

Please sign in to comment.