Skip to content

Commit

Permalink
Merge branch 'master' into romac/3397-lc-refresh
Browse files Browse the repository at this point in the history
  • Loading branch information
romac committed Jan 3, 2024
2 parents f80ecc1 + c979f92 commit 8393c8f
Show file tree
Hide file tree
Showing 447 changed files with 9,304 additions and 3,802 deletions.
2 changes: 0 additions & 2 deletions .changelog/unreleased/breaking-changes/3548-cometbft-0.38.md

This file was deleted.

2 changes: 2 additions & 0 deletions .changelog/unreleased/breaking-changes/3688-msrv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Bump MSRV to 1.71
([\#3688](https://github.com/informalsystems/hermes/issues/3688))
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- The `type` key in the `[[chains]]` section is now required. ([\#3636](https://github.com/informalsystems/hermes/issues/3636))
If you previously did not specify that key, you must now set it to `type = "CosmosSdk"`, eg.

```rust
[[chains]]
id = "osmosis-1"
type = "CosmosSdk"
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Add a test for asynchronous Interchain Query relaying
([\#3455](https://github.com/informalsystems/hermes/issues/3455))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- 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+.
([\#3696](https://github.com/informalsystems/hermes/issues/3696))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Use legacy `UpgradeProposal` or newer `MsgIbcSoftwareUpgrade` message when upgrading
a chain depending on whether the chain is running IBC-Go v8 or older.
([\#3696](https://github.com/informalsystems/hermes/issues/3696))
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Add a new `evidence` command for monitoring the blocks emitted
by a chain for the presence of a misbehaviour evidence, and
report that evidence to all counteparty clients of that chain.
([\#3456](https://github.com/informalsystems/hermes/pull/3456))
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- When Hermes detects a misbehaviour on a chain that is CCV
consumer, it will now send the misbehaviour evidence to the
provider chain using the new `IcsConsumerMisbehaviour` message.
([\#3219](https://github.com/informalsystems/hermes/issues/3219))
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- When Hermes detects a misbehaviour from a on-chain client, eg. a light
client attack or a double-sign, it will now submit the misbehaviour
evidence to all counterparty clients of the misbehaving chain
instead of to the counterparty client of the misbehaving client only.
([\#3223](https://github.com/informalsystems/hermes/issues/3223))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Change fallback compatibility version for CometBFT from v0.37 to v0.34
([\#3666](https://github.com/informalsystems/hermes/issues/3666))
25 changes: 25 additions & 0 deletions .changelog/v1.7.0/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
*October 20th, 2023*

This v1.7 release introduces new features and improvements to Hermes.

One of the key highlights is the addition of new misbehavior detection features.

Hermes now includes a new command called `evidence`, which monitors the blocks emitted by a chain for any presence of misbehavior evidence.

If misbehavior is detected, the CLI will report that evidence to all counterparty clients of that chain.
On top of that, misbehavior evidence detected on a chain that is a CCV (Cross-Chain Validation) consumer
is now sent to its provider chain, alerting it directly of the misbehaving consumer chain.

Furthermore, when misbehavior is detected from an on-chain client, such as a light client attack or a double-sign,
the evidence is now submitted to all counterparty clients of the misbehaving chain, rather than just the
counterparty client of the misbehaving client.

In addition, the REST server of Hermes now has a `/clear_packets` endpoint which allows triggering
packet clearing for a specific chain or all chains if no specific chain is provided.

Another notable improvement is the ability to change `tracing` directives at runtime.
This feature lets users adjust tracing settings dynamically as needed, providing a more
customizable and efficient debugging experience.

Overall, the new misbehavior detection features in Hermes contribute to a more robust and secure environment,
enabling timely identification and response to potential misbehaving actors.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Add an optional per-chain setting `compat_mode`, which can be
used to specify which CometBFT compatibility mode is used for interacting with the node over RPC.
([\#3623](https://github.com/informalsystems/hermes/issues/3623))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Add a configuration which allows to override the `clear_interval` for specific
chains ([\#3691](https://github.com/informalsystems/hermes/issues/3691))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Hermes now saves on fees by not including a client update if the
consensus state at desired height is already present on chain.
([\#3521](https://github.com/informalsystems/hermes/issues/3521))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Change config format to scope configs by type. This enables adding support for
more types of chain, even when those have different config options than each
other. ([\#3636](https://github.com/informalsystems/hermes/issues/3636))
12 changes: 12 additions & 0 deletions .changelog/v1.7.1/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
This patch release of Hermes now allows operators to set the clearing interval
at a different value for each chain, using the new per-chain `clear_interval` setting.
The global `clear_interval` setting is used as a default value if the per-chain
setting is not defined.

Additionnaly, operators can now override the CometBFT compatibility mode to be used
for a chain by using the new `compat_mode` per-chain setting. The main use case for this
is to override the automatically detected compatibility mode in case Hermes gets it wrong
or encounters a non-standard version number and falls back on the wrong CometBFT version.

On top of that, Hermes will now attempt to save on fees by not building a client update
for a given height if the consensus state for that height is already present on chain.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Added metric `client_updates_skipped` to track the number of client
update messages skipped due to the conscensus state existing already.
([\#3707](https://github.com/informalsystems/hermes/issues/3707))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Add a new metric `broadcast_errors` which
records the number of times a specific error is observed by Hermes when broadcasting transactions
([\#3708](https://github.com/informalsystems/hermes/issues/3708))
7 changes: 7 additions & 0 deletions .changelog/v1.7.2/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
*November 28th, 2023*

This patch release of Hermes adds a metric to improve monitoring errors and one
to measure the efficiency of the client update skip feature released in patch v1.7.1.

* `broadcast_errors` records the number of times a specific error is observed by Hermes when broadcasting transactions.
* `client_updates_skipped` records the number of client updates skipped due to the consensus states already existing.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Improve reliability of `evidence` command and fix a bug that was
preventing evidence to be reported, as seen on the Gaia RS testnet
([\#3702](https://github.com/informalsystems/hermes/pull/3702))
5 changes: 5 additions & 0 deletions .changelog/v1.7.3/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*November 29th, 2023*

This release improves the reliability of the `evidence` command and
fixes a bug that was preventing evidence to be reported,
as seen on the Gaia RS testnet.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Fix a bug in the `evidence` command which would sometimes
prevent the detected misbehaviour evidence from being submitted,
instead erroring out with a validator set hash mismatch.
([\#3697](https://github.com/informalsystems/hermes/pull/3697))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Avoid retrieving a worker which is being removed by the idle worker clean-up
process.
process ([\#3703](https://github.com/informalsystems/hermes/issues/3703))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Fix the issue where `broadcast_errors` metric would not correctly batch
the same errors together.
together ([\#3720](https://github.com/informalsystems/hermes/issues/3720))
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Update the values of `backlog` metrics when clearing packets.
Change the `backlog_oldest_timestamp` to `backlog_latest_update_timestamp`
which shows the last time the `backlog` metrics have been updated.
([\#3723](https://github.com/informalsystems/hermes/issues/3723))
9 changes: 9 additions & 0 deletions .changelog/v1.7.4/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*December 15th, 2023*

This release improves the monitoring of Hermes instances by fixing the `broadcast_errors` metric so
that it correctly batches the same errors together. It also improves the metrics `backlog_*` by
updating them whenever Hermes queries pending packets.

This release also improves the reliability of the idle worker clean-up and
fixes a bug within the `evidence` command which would sometimes prevent
the misbehaviour evidence from being reported.
3 changes: 3 additions & 0 deletions .github/codespell/codespell.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[codespell]
skip = *.js,*.ts,*.css,*.svg,./target
ignore-words = .github/codespell/words.txt
4 changes: 4 additions & 0 deletions .github/codespell/words.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
crate
shs
ser
numer
12 changes: 11 additions & 1 deletion .github/workflows/cargo-doc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,17 @@ on:
push:
branches:
- master
pull_request: {}
paths:
- .github/workflows/cargo-doc.yml
- Cargo.toml
- Cargo.lock
- crates/**
pull_request:
paths:
- .github/workflows/cargo-doc.yml
- Cargo.toml
- Cargo.lock
- crates/**

# Cancel previous runs of this workflow when a new commit is added to the PR, branch or tag
concurrency:
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Codespell
on:
pull_request:
push:
branches: master

# Cancel previous runs of this workflow when a new commit is added to the PR, branch or tag
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
codespell:
name: Check spelling
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
skip: '*.js,*.ts,*.css,*.svg,./target'
ignore_words_file: .github/codespell/words.txt

4 changes: 2 additions & 2 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: digests
path: /tmp/digests/*
Expand All @@ -75,7 +75,7 @@ jobs:
- docker-build
steps:
- name: Download digests
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: digests
path: /tmp/digests
Expand Down
Loading

0 comments on commit 8393c8f

Please sign in to comment.