Skip to content

Commit

Permalink
Merge upstream changes from informalsystems/hermes (informalsystems#23)
Browse files Browse the repository at this point in the history
* Update release-template.md to include a workflow with the comms team (informalsystems#3827)

* Update link to IBC website (informalsystems#3834)

* fix: use the consensus state at client latest height in status CLI (informalsystems#3829)

* Use the consensus state at client latest height in status CLI

* Add changelog

* Index fetched data by the given chain name to account for mismatch between name in chain registry and chain identifier (informalsystems#3808)

* Index fetched data by the given chain name to account for mismatch between name in chain registry and chain identifier

* Show output when fetching chain data

* fix: add syncing check for gRPC node (informalsystems#3833)

* Add syncing check for gRPC node.

* Fix comment.

* Add changelog

* Use cosmos.nix S3 cache on CI (informalsystems#3842)

* Bump ics23 from 0.11.0 to 0.11.1 (informalsystems#3839)

Bumps [ics23](https://github.com/cosmos/ics23) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/cosmos/ics23/releases)
- [Changelog](https://github.com/cosmos/ics23/blob/master/CHANGELOG.md)
- [Commits](cosmos/ics23@rust/v0.11.0...rust/v0.11.1)

---
updated-dependencies:
- dependency-name: ics23
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build multi-platform image on macOS runner to speed up build (informalsystems#3843)

* Remove assumption that ICS-04 packet data is a valid UTF-8 string (informalsystems#3768)

* Do not assume JSON-encoded packet data by using the `packet_data_hex` attribute instead of deprecated `packet_data`

Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON),
disallowing Protobuf-encoded payloads which we are starting to see in the wild.

The `packet_data` atttribute has been deprecated in favor of `packet_data_hex` since IBC-Go v1.0.0. [0]

[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417

* Ensure packet data is encoded to/decoded from lowercase hex

* Refactor conversion from `RawObject` to `Packet`

* Revert change in JSON serialization of packet data case as hex

* Decode packets from `packet_data_hex` in NewBlock events as well

* Bump ibc-proto to v0.41.0

* Use branch of ibc-proto with support for invalid UTF-8 event attributes

* Update ibc-proto to v0.42.0 to finalize fix for non-UTF-8 packet data (informalsystems#3844)
  * Add legacy message to register ICA account for ibc-go versions prior to v8.1.0

---------

Co-authored-by: Luca Joss <[email protected]>

* Fix clippy warnings

* Use latest nightly to run cargo-doc

* Include banner in README.md (informalsystems#3854)

The banner is similar to the rest of the IBC ecosystem repositories, eg [ibc-go](https://github.com/cosmos/ibc-go/blob/main/README.md)

Signed-off-by: Adi Seredinschi <[email protected]>

* Bump jaxxstorm/action-install-gh-release from 1.10.0 to 1.11.0 (informalsystems#3848)

Bumps [jaxxstorm/action-install-gh-release](https://github.com/jaxxstorm/action-install-gh-release) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/jaxxstorm/action-install-gh-release/releases)
- [Commits](jaxxstorm/action-install-gh-release@v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: jaxxstorm/action-install-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update `curve25519-dalek` to its latest version to fix `cargo doc` job on nightly (informalsystems#3855)

* Bump eyre from 0.6.11 to 0.6.12 (informalsystems#3851)

* Bump moka from 0.12.4 to 0.12.5 (informalsystems#3849)

* feat: add simulate errors metrics (informalsystems#3846)

* feat: add simulate errors metrics

* feat: add error message

* chore: add docs

* chore: add unclog entry

* chore: cargo fmt

* Update .changelog/unreleased/features/3845-add-simulate-errors-metric.md

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

* chore: renamed unreleased file

* Update changelog entry

---------

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

* Bump tendermint-proto from 0.34.0 to 0.34.1 (informalsystems#3861)

Bumps [tendermint-proto](https://github.com/informalsystems/tendermint-rs) from 0.34.0 to 0.34.1.
- [Release notes](https://github.com/informalsystems/tendermint-rs/releases)
- [Changelog](https://github.com/informalsystems/tendermint-rs/blob/v0.34.1/CHANGELOG.md)
- [Commits](informalsystems/tendermint-rs@v0.34.0...v0.34.1)

---
updated-dependencies:
- dependency-name: tendermint-proto
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Improve reliability of compatibility check (informalsystems#3835)

* Make ordered channels more resilient in the face of failing packets (informalsystems#3610)

* Start scaffolding ica_ordered_channel test

* Disable packet clearing

* Add ica_ordered_channel test

* Move some imports around

* Clean up imports

* Add sleep calls in between supervisor runs

* Formatting

* Fix compilation issues

* Emphasize wording in documentation

* Fill in code from discussion

* Rename TrakingId::ClearId to TrackingId::PacketClearing

* Compile ica ordered channel test under the ica feature flag

* Cargo fmt

* Move interchain_send_tx fn to test-framework crate

* Cargo fmt

* Update relayer config for consumer chain

* Move ica_ordered_channel test under the ica feature

* Move ica_transfer test under ica feature

* Check that ICA channel is eventually established using the supervisor

* Fix clippy warnings

* Improve logs

* Add changelog entry

* Fix compilation of ICA tests

* Add `force_disable_clear_on_start` config option, only available in test code

* Cleanup

* Check whether packet clear is needed instead of reacting to error when it fails

* Force disable clear on start in ICA ordered channel test

* Update changelog entry

* Improve ICA ordered channel test asserts

---------

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

* Add `memo_overwrite` configuration (informalsystems#3863)

* Add configuration to overwrite relayer memo

* Add test for memo override

* Add 'memo_overwrite' config documentation

* Add changelog entry

* Recover from gas simulation failures on legacy chains (informalsystems#3793)

Closes: informalsystems#3792

Co-authored-by: Luca Joss <[email protected]>

* Bump tempfile from 3.9.0 to 3.10.1 (informalsystems#3870)

* Bump secp256k1 from 0.28.1 to 0.28.2 (informalsystems#3869)

* Bump anyhow from 1.0.79 to 1.0.80 (informalsystems#3868)

* Bump thiserror from 1.0.56 to 1.0.57 (informalsystems#3866)

* Fix Rust toolchain nightly version to 2024-03-03 for cargo-doc CI job (informalsystems#3875)

* Add configuration to skip packet sequences when clearing (informalsystems#3862)

* Implement packet clearing filtering logic

* Add tests for packet clearing filter

* Add documentation

* Add changelog entry

* Add excluded sequences to `LinkParameters` struct

* Fix sequence filter by adding setting it to be per-channel

* Skip sequence filter test with Celestia due to the token filter module

* Small refactor

* Small cleanup

---------

Co-authored-by: Romain Ruetschi <[email protected]>

* Improve out of gas error log (informalsystems#3874)

* Add additional information for out of gas error

* Add guide entry for troubleshooting gas errors

* Add changelog entry

* Apply suggestions from code review

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

---------

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

* Release Hermes v1.8.1 (informalsystems#3876)

* Build release changelog

* Bump version number

* Fix typos

* Update CHANGELOG.md

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

* Update changelog

---------

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

* Fix Docker image workflow

* Bump serde from 1.0.195 to 1.0.197 (informalsystems#3884)

Bumps [serde](https://github.com/serde-rs/serde) from 1.0.195 to 1.0.197.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](serde-rs/serde@v1.0.195...v1.0.197)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix parsing of IBC-Go version in health check and improve health check reporting (informalsystems#3888)

* Add Injective to chains running tests in CI (informalsystems#3886)

* Add Injective to chains running tests in CI

* Add changelog and Injective to multi-chains-test

* Fix ICS29 timeout fee test compatibility for ibc-go v8.1+

* Add compatibility to ICS29 tests for ibc-go v8.1+

* Fix typos

* Fix `clear packets` CLI bug where `counterparty_channel_id` cannot be found (informalsystems#3890)

* Use correct counterparty channel and port id when creating reverse link in packet clearing CLI

* Add changelog

* Change connection and handshake retry strategy to retry max 10 times over two blocks (5 times per block) (informalsystems#3864)

* Change connection and handshake retry strategy to retry max 10 times over two blocks (5 times per block)

* Add changelog entry

* Update 3864-handshake-retry.md

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

* Release v1.8.2 (informalsystems#3891)

* Bump version to 1.8.2

* Fix warnings on latest nightly

* Create v1.8.2 changelog

* Rephrase changelog summary

* Reword changelog

* Update CHANGELOG.md

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

* fix: fixed minimum-gas-prices healthcheck messages and make it more verbose/clear (informalsystems#3898)

* fix: fixed minimum-gas-prices healthcheck messages and make it more verbose/clear

* Update changelog entry

* Small refactor

---------

Co-authored-by: Romain Ruetschi <[email protected]>

* Proceed to next block after a few retries if Hermes can't parse current block during event sourcing (informalsystems#3906)

Co-authored-by: Romain Ruetschi <[email protected]>

* Use workspace dependencies (informalsystems#3907)

* Set `compat_mode` for pull mode in `hermes listen` command (informalsystems#3911)

* set compat_mode for pull mode

* add CHANGELOG

* Use constant backoff in handshake retry strategy (informalsystems#3900)

* Add action to determine and check the MSRV (informalsystems#3909)

* Use actions-rust-lang action for setting up Rust

* Add action to determine and check the MSRV

* Update MSRV to 1.71.1

* Check MSRV on CI

* Fix warning

* Update cargo-doc nightly

* Use latest cargo-msrv

* Update guide/src/quick-start/pre-requisites.md

Signed-off-by: Romain Ruetschi <[email protected]>

---------

Signed-off-by: Romain Ruetschi <[email protected]>

* Revert "Build multi-platform image on macOS runner to speed up build (informalsystems#3843)" (informalsystems#3892)

This reverts commit 7cfb234.

* Bump crossbeam-channel from 0.5.11 to 0.5.12 (informalsystems#3918)

Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.5.11 to 0.5.12.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md)
- [Commits](crossbeam-rs/crossbeam@crossbeam-channel-0.5.11...crossbeam-channel-0.5.12)

---
updated-dependencies:
- dependency-name: crossbeam-channel
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump async-trait from 0.1.77 to 0.1.79 (informalsystems#3919)

Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.77 to 0.1.79.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](dtolnay/async-trait@0.1.77...0.1.79)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update release-template.md to consistently notify comms team (informalsystems#3908)

Trying to find a way for the marketing/comms team to get early notification, consistently, that a new release will happen.

@romac or Luca (not tagging b/c of holidays) if you prefer other approaches then happy to go with something else.

Signed-off-by: Adi Seredinschi <[email protected]>

* Use pull event source when generating configuration with `hermes config auto` (informalsystems#3920)

* Use pull event source when generating configuration with `hermes config auto`

* Add changelog entry

* WIP: begin v2 Penumbra support in Hermes

This starts constructing a v2 of Penumbra support in Hermes, using the
multi-chain backend support we added.

We should be careful to write this code so that it's _maintainable_ as a set of
changes on top of upstream Hermes.  Thus, whenever I've encountered things that
should change about the Hermes code generally, I've marked them with
`TODO(extract)`. That way, we can note changes we'd like to make / need to make
along the way, send them upstream as small, self-contained PRs, and then rebase
this work once they're merged.

The architecture we upstreamed should allow us to keep all the Penumbra-related
code in a submodule, isolated from the rest of the Hermes code, so that future
rebasing won't generate conflicts -- and ideally we could even merge support
upstream, though that will probably need to wait until we can publish all the
Penumbra crates.

* add config fields probably needed for tm-related configs

* start trying to run a view server

* add cargo config needed to build penumbra crates

* bootstrap boxed view service, implement health check and subscribe

* implement some client and connection queries

* implement the majority of query and event parsing

* first pass at implementing transaciton building

* fix conversion to IbcRelay

* fixup remaining build errors, add compat mode to penumbra config

* add tendermint light client to penumbra endpoint

* implement penumbra chain::build_header

* implement penumbra chain::verify_header and check_misbheavior

* implement async tx submitting, add view_service_storage_dir config

* add config-preview-celestia.toml config

* extract client settings to a chain-agnostic structure

* channel creation working: implement workaround for loadbalancer issue, application status

* implement balance query using view client

* async packet relay working now, refactored into build_penumbra_tx

* build unbonding period using penumbra app parameters

* rename celestia config

* fixup a few missing penumbra branches in tests

* add example osmosis config

We already have example configs for a few chains, and our internal
developer docs reference the file `config-penumbra-osmosis.toml`,
so committed a lightly-sanitized version of same for clarity.

* Merge Astria support into Penumbra branch (informalsystems#16)

* update rustfmt

* implement `AstriaEndpoint` (informalsystems#1)

* begin AstriaEndpoint impl; update rustfmt

* impl send_messages and verify_header

* check_misbehaviour and bootstrap

* bump deps and work on query methods

* implement rest of queries, lint

* getting stuff running! hermes working but issue on astria

* increase default rpc timeout to 60s

* add proof specs for astria

* handle nonce in astria endpoint

* use no_prehash for proof spec for now

* update localnet config for osmosis

* cleanup

* fix astria address creation and cleanup

* implement ICS20Withdrawal on astria for transfer command

* merge w upstream (informalsystems#2)

* merge with upstream

* add celestia config

* remove unused config

* bump astria, penumbra, and ibc-proto deps

* Resolve penumbra dependencies across astria/penumbra

* Use ibc-types v0.12.0

* Fix compilation with a bunch of todos

* cargo fmt

* Fix some test imports

* Test fixes for Penumbra/Astria

* Fix compilation and move penumbra/astria dependencies to recent versions

---------

Co-authored-by: elizabeth <[email protected]>
Co-authored-by: noot <[email protected]>

* Missing Astria fixes from previous merge

* Run CI on main branch instead of master (informalsystems#20)

* clippy

* Change tokio features to include full...

* try to fix CI with different dependency versions

* config -> config.toml

* Use tokio_unstable in github actions

* Update min rust-version to 1.77.1

* msrv -> 1.77.1

* Fix clippy failures

* skip Cargo.lock in codespell

* Use tokio_unstable in all the GitHub Actions

* Use old version of penumbra imports for astria

* Further PR cleanup

* remove redundant imports

* Fix cargo-doc CI

* Try to fix integration test disk space error

* Use build cache and index page and unstable options for rust doc build

* Further CI fixes for cargo doc build

* Fix CI template

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Adi Seredinschi <[email protected]>
Signed-off-by: Sergey <[email protected]>
Signed-off-by: Sean Chen <[email protected]>
Signed-off-by: Luca Joss <[email protected]>
Signed-off-by: Romain Ruetschi <[email protected]>
Signed-off-by: Romain Ruetschi <[email protected]>
Co-authored-by: Adi Seredinschi <[email protected]>
Co-authored-by: Romain Ruetschi <[email protected]>
Co-authored-by: Anca Zamfir <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Luca Joss <[email protected]>
Co-authored-by: Romain Ruetschi <[email protected]>
Co-authored-by: Sergey <[email protected]>
Co-authored-by: Luca Joss <[email protected]>
Co-authored-by: Sean Chen <[email protected]>
Co-authored-by: Martin Dyring-Andersen <[email protected]>
Co-authored-by: Jayden Lee <[email protected]>
Co-authored-by: Henry de Valence <[email protected]>
Co-authored-by: Ava Howell <[email protected]>
Co-authored-by: Conor Schaefer <[email protected]>
Co-authored-by: elizabeth <[email protected]>
Co-authored-by: noot <[email protected]>
  • Loading branch information
17 people authored Apr 9, 2024
1 parent 97804c8 commit f760c7e
Show file tree
Hide file tree
Showing 204 changed files with 7,402 additions and 2,234 deletions.
3 changes: 2 additions & 1 deletion .cargo/config → .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[build]
# Enable Tokio's `tracing` support for `tokio-console`
rustflags = ["--cfg", "tokio_unstable"]
rustflags = ["--cfg", "tokio_unstable"]

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Fixed `minimum-gas-prices` health-check messages and make it more verbose and legible
([\#3893](https://github.com/informalsystems/hermes/issues/3893))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Set `compat_mode` for pull mode in `hermes listen` command
([\#3910](https://github.com/informalsystems/hermes/issues/3910))
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Improve reliabily of event source in `pull` mode by proceeding to next block even if Hermes cannot parse the current block.
Add new configuration option to `event_source` setting: `max_retries` defines how many times Hermes should attempt to pull a block over RPC.
```toml
event_source = { mode = 'pull', interval = '1s', max_retries = 4 }
```
([\#3894](https://github.com/informalsystems/hermes/issues/3894))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Use RPC (pull) event source instead of WebSocket (push) when generating configuration with `hermes config auto`
([\#3913](https://github.com/informalsystems/hermes/issues/3913))
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Allow relaying ICS-04 packets with non-UTF-8 payloads ([\#3770](https://github.com/informalsystems/hermes/issues/3770))
Hermes does not assume anymore that an ICS-04 packet data is valid UTF-8,
by using the `packet_data_hex` attribute when assembling a packet from events, instead of the deprecated `packet_data` attribute.
Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON), disallowing eg. Protobuf-encoded payloads.
The `packet_data` attribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Improve reliability of compatibility check and fix parsing of expected modules
versions ([\#3831](https://github.com/informalsystems/hermes/issues/3831))
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- Add a per-chain configuration `excluded_sequences` allowing
users to specify a list of packet sequences which will not be
cleared.
This configuration has no impact on standard packet relaying.
([\#3754](https://github.com/informalsystems/hermes/issues/3754))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Add a per-chain configuration `memo_overwrite` allowing users
to overwrite the relayer memo used for each transaction
([\#3811](https://github.com/informalsystems/hermes/issues/3811))
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
- Added a new Prometheus metric `simulate_errors` for tracking when a transaction simulation fails, with the following labels:
* `recoverable` (can the execution continue if this happened?)
* `account` (account from which the tx was sent)
* `error_description` (description of the error)
([\#3845](https://github.com/informalsystems/hermes/issues/3845))

```
# HELP simulate_errors_total Number of errors observed by Hermes when simulating a Tx
# TYPE simulate_errors_total counter
simulate_errors_total{account="osmo17ndx5qfku28ymxgmq6zq4a6d02dvpfjjul0hyh",error_description="Unknown error",recoverable="false",service_name="unknown_service",otel_scope_name="hermes",otel_scope_version=""} 4
```
3 changes: 3 additions & 0 deletions .changelog/v1.8.1/improvements/3814-grpc-syncing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Add syncing check for gRPC node ([#3814])

[#3814]: https://github.com/informalsystems/ibc-rs/issues/3814
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Use the consensus state at client latest height in status CLI ([#3814])

[#3814]: https://github.com/informalsystems/ibc-rs/issues/3814
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Improve the log diagnostic when an out of gas error is thrown.
And a new entry related to gas error has been added to the Hermes
guide.
([\#3530](https://github.com/informalsystems/hermes/issues/3530))
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Improve resilience when relaying on ordered channels.
When relaying packets on an ordered channel, Hermes will now attempt
to detect whether the next message to send has the sequence number
expected on that channel. If there is a mismatch, then Hermes will trigger a packet
clear on the channel to unblock it before resuming operations on that channel.
([\#3540](https://github.com/informalsystems/hermes/issues/3540))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Recover from gas simulation failures on legacy chains.
([\#3792](https://github.com/informalsystems/hermes/issues/3792))
19 changes: 19 additions & 0 deletions .changelog/v1.8.1/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
*March 6th, 2024*

This release improves reliability when relaying, more enhanced configuration and improved monitoring.

Reliability has been improved:
* It is now possible to relay ICS-04 packets with non-UTF-8 payloads
* Packet sequences are now verified for ordered channels before trying to relay

Additional per-chain configurations have been added:
* `excluded_sequences` used to skip problematic packets when clearing
* `memo_overwrite` allowing users to overwrite the relayer memo when chains have a
strict limit for the size of the memo

Monitoring issues improvements:
* A new metric `simulate_errors` which counts the number of failed simulated transactions
* Out of gas error diagnostic gives more information and a dedicated entry to the guide has been added
* Failed gas simulation will not be considered as unrecoverable for legacy chains
* The compatibility check during the health-check has been improved will assess more correctly the versions
for Ibc-Go and Cosmos SDK
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Correctly use the counterparty channel and port IDs when clearing the packets
from the destination chain to the source chain in the `packet clear` command
([\#3889](https://github.com/informalsystems/hermes/issues/3889))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Fix parsing of IBC-Go version in health check and improve health check
reporting ([\#3880](https://github.com/informalsystems/hermes/issues/3880))
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Add Injective chain to the chains running the integration tests in the CI.
([\#3887](https://github.com/informalsystems/hermes/issues/3887))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Change connection and channel handshake retry strategy
to retry at most 10 times (5 times per block max)
([\#3864](https://github.com/informalsystems/hermes/issues/3864))
6 changes: 6 additions & 0 deletions .changelog/v1.8.2/summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
*March 12th, 2024*

This release fixes the two following bugs and improves the connection and channel handshake retry mechanism:

* Fix erroneous warnings for incompatible version of IBC-Go during health checks, ensuring accurate compatibility reporting
* Fix a bug in the `clear packets` command which caused packet clearing to fail with an "counterparty channel not found" error
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/release-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ v without deliberation
- [ ] Create a new release in the changelog, using [`unclog`](https://github.com/informalsystems/unclog)
- If doing a release candidate (`rc`) version, then skip the `unclog release` step
- [ ] Reassign unfinished issues of previous milestone to the next milestone
- [ ] Notify the comms team about the pending new release by tagging [@isa-belch](https://github.com/isa-belch) as a reviewer here
2 changes: 1 addition & 1 deletion .github/codespell/codespell.ini
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[codespell]
skip = *.js,*.ts,*.css,*.svg,*.html,*.json,./target,./tools/integration-test/data,./tools/check-guide/target,./ci/misbehaviour/data
skip = *.js,*.ts,*.css,*.svg,*.html,*.json,./target,./tools/integration-test/data,./tools/check-guide/target,./ci/misbehaviour/data,Cargo.lock
ignore-words = .github/codespell/words.txt
2 changes: 2 additions & 0 deletions .github/workflows/audit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,7 @@ jobs:
path: ~/.cargo/bin
key: ${{ runner.os }}-cargo-audit-v0.11.2
- uses: actions-rs/[email protected]
env:
RUSTFLAGS: --cfg tokio_unstable
with:
token: ${{ secrets.GITHUB_TOKEN }}
34 changes: 19 additions & 15 deletions .github/workflows/cargo-doc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ on:
- Cargo.lock
- crates/**

env:
RUSTFLAGS: --cfg tokio_unstable

# 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 }}
Expand All @@ -26,23 +29,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2023-07-13
override: true

- name: Install rust toolchain
# The script for rustdoc build requires nightly toolchain.
uses: dtolnay/rust-toolchain@nightly
# Loading cache takes ~15s, but saves us minutes of build.
- name: Load rust cache
uses: astriaorg/[email protected]
- name: Build API documentation
uses: actions-rs/cargo@v1
env:
RUSTDOCFLAGS: "--cfg docsrs"
RUSTDOCFLAGS: "--enable-index-page -Zunstable-options --cfg docsrs"
with:
command: doc
args: --all-features

- name: Push API documentation to GitHub Pages
if: github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.IBC_RS_DOC_PRIVATE_KEY }}
external_repository: informalsystems/hermes-api-doc
publish_dir: ./target/doc
args: --all-features --no-deps
# Disabled on penumbra hermes fork
# - name: Push API documentation to GitHub Pages
# if: github.ref == 'refs/heads/main'
# uses: peaceiris/actions-gh-pages@v3
# with:
# deploy_key: ${{ secrets.IBC_RS_DOC_PRIVATE_KEY }}
# external_repository: informalsystems/hermes-api-doc
# publish_dir: ./target/doc
2 changes: 1 addition & 1 deletion .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ jobs:
- uses: actions/checkout@v4
- uses: codespell-project/actions-codespell@v2
with:
skip: '*.js,*.ts,*.css,*.svg,*.html,*.json,./target,./tools/integration-test/data,./tools/check-guide/target,./ci/misbehaviour/data'
skip: '*.js,*.ts,*.css,*.svg,*.html,*.json,./target,./tools/integration-test/data,./tools/check-guide/target,./ci/misbehaviour/data,Cargo.lock'
ignore_words_file: .github/codespell/words.txt

8 changes: 8 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ jobs:
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
type=ref,event=tag
type=ref,event=branch
type=semver,pattern={{version}}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
Expand Down Expand Up @@ -91,6 +95,10 @@ jobs:
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
type=ref,event=tag
type=ref,event=branch
type=semver,pattern={{version}}
- name: Login to Docker Hub
uses: docker/login-action@v3
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/guide-templates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ on:
- tools/check-guide/**
- guide/src/templates/**

env:
RUSTFLAGS: --cfg tokio_unstable

# 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 }}
Expand All @@ -28,10 +31,9 @@ jobs:
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
override: true
- name: Check templates
run: bash scripts/auto_gen_templates.sh --mode "check"
- uses: actions-rs/cargo@v1
Expand Down
Loading

0 comments on commit f760c7e

Please sign in to comment.