Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.11.0 #1818

Merged
merged 7 commits into from
Jan 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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