v1.7.0
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.
FEATURES
• Relayer CLI • 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 )
• Add a `/clear_packets?chain=CHAIN_ID` endpoint to the built-in REST server to trigger packet clear for the chain specified in the chain query param or for all chains if the query param is omitted. ( #3398 )
• Add support for changing `tracing` directives at runtime. ([ #3564 ]
Please see the corresponding page in the Hermes guide for more information.( #3564 ))
IMPROVEMENTS
• Relayer Library • 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 )
• 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 )
• Improve error message when scanning unsupported client ( #3531 )
• Regard the `finalize_block_events` field of the `block_results` RPC endpoint, added in CometBFT 0.38 ( #3548 )
• Change fallback compatibility version for CometBFT from v0.37 to v0.34 ( #3666 )
• Relayer CLI • The `listen` command now works with both `push` and `pull` event sources ( #3501 )
BUG FIXES
• Relayer CLI • Revert Docker image to Ubuntu LTS and set the UID and GID explicitly ( #3580 )
• IBC Data structures • Fix build of `ibc-relayer-types` documentation on docs.rs ( #3549 )
What's Changed
• Add date to release in changelog by @romac in #3490
• Add Stride v12.1.0 to ICS tests by @ljoss17 in #3492
• Add ICA transfer test to interchain-security tests by @ljoss17 in #3493
• Add ICQ tests for interchain-security tests by @ljoss17 in #3494
• Bump dyn-clone from 1.0.11 to 1.0.12 by @dependabot in #3497
• Bump signal-hook from 0.3.15 to 0.3.17 by @dependabot in #3500
• Bump async-trait from 0.1.71 to 0.1.72 by @dependabot in #3515
• Bump bitcoin from 0.30.0 to 0.30.1 by @dependabot in #3512
• Bump erased-serde from 0.3.27 to 0.3.28 by @dependabot in #3511
• Bump Swatinem/rust-cache from 1 to 2 by @dependabot in #3517
• Fix interchain-security tests flakiness by @ljoss17 in #3518
• Bump moka from 0.11.2 to 0.11.3 by @dependabot in #3526
• Bump ibc-proto from 0.32.0 to 0.32.1 by @dependabot in #3536
• Enable `listen` command with `pull` event source by @romac in #3502
• Bump ed25519-dalek from 1.0.1 to 2.0.0 by @dependabot in #3537
• Reduce CI flakiness by using `cargo-nextest` by @soareschen in #3544
• Update to tendermint-rs 0.33.0 and adapt to RPC changes in CometBFT 0.38 by @mzabaluev in #3372
• Bump ics23 from 0.10.1 to 0.10.2 by @dependabot in #3551
• Remove dependency on `safe-regex` for `regex` by @romac in #3556
• Bump rustls-webpki from 0.101.1 to 0.101.4 by @dependabot in #3557
• Small fix in the `config.toml`trust_threshold` for chain `ibc-1` by @ljoss17 in #3560
• Fix Clippy warnings on Rust 1.72 by @romac in #3562
• Add `KeyFile` associated type to `SigningKeyPair` trait by @DaviRain-Su in #3568
• Improve error message when scanning unsupported client by @DaviRain-Su in #3567
• Use lychee to check markdown links by @romac in #3576
• Limit link checker concurrency and use GitHub token by @romac in #3577
• Revert Docker image to Ubuntu LTS and set the UID and GID explicitly by @romac in #3581
• Bump actions/checkout from 3 to 4 by @dependabot in #3583
• Bump regex from 1.9.1 to 1.9.5 by @dependabot in #3599
• Split Docker build into its own workflow by @romac in #3602
• Add support for changing `tracing` directives at runtime by @ljoss17 in #3565
• Add REST endpoint `/clear_packets` to trigger packet clearing by @romac in #3401
• Bump docker/setup-qemu-action from 2 to 3 by @dependabot in #3608
• Bump docker/login-action from 2 to 3 by @dependabot in #3607
• Bump docker/metadata-action from 4 to 5 by @dependabot in #3606
• Bump docker/setup-buildx-action from 2 to 3 by @dependabot in #3605
• Bump docker/build-push-action from 4 to 5 by @dependabot in #3604
• Use only Gaia v11 on CI by @romac in #3546
• Bump ibc-proto from 0.33.0 to 0.34.0 by @dependabot in #3552
• docs: fix # of crates by @rootulp in #3621
• fix: link to gaiad-manager by @rootulp in #3613
• Document `discard_abci_responses` and pull-mode relaying interaction in the Hermes guide by @seanchen1991 in #3635
• Document Hermes' gRPC endpoint requirements by @seanchen1991 in #3529
• Update `gaiad` version and `config.toml` example in Hermes guide by @seanchen1991 in #3640
• Document how to read a key/mnemonic from stdin in `keys add` command by @romac in #3645
• Remove file committed by mistake by @romac in #3652
• Update tendermint-rs to v0.34, prost to v0.12 and tonic to v0.10 by @romac in #3651
• Fix new clippy warnings on Rust 1.74 by @romac in #3653
• Improve ICS test bootstrapping by @ljoss17 in #3657
• Add `evidence` command for monitoring and reporting misbehavior evidence to counterparty clients by @romac in #3456
• Bump Swatinem/rust-cache from 1 to 2 by @dependabot in #3665
• Bump actions/checkout from 3 to 4 by @dependabot in #3664
• Set CompatMode fallback to v0.34 when the version query fails by @ljoss17 in #3663
• Fix commented gas_price line in example config file by @ljoss17 in #3668
• Docs improvements by @seanchen1991 in #3661
• Update to ibc-proto v0.38.0 and remove unneeded object-safe trait definitions by @romac in #3671
• Release Hermes 1.7.0 by @romac in #3639
New Contributors
• @rootulp made their first contribution in #3621
Full changes : v1.6.0...v1.7.0