Skip to content

Releases: informalsystems/hermes

v1.5.1

05 Jun 15:48
v1.5.1
6583d69
Compare
Choose a tag to compare

June 5th, 2023

This is a patch release for Hermes, which includes a single bugfix and enables overflow checks in production builds.

BUG FIXES

  • Fix a panic which can occur when querying connections filtered by counterparty chain using hermes query connections (#3381)

IMPROVEMENTS

  • Overflow checks are now enabled when Hermes is built in release mode, in order to better catch and address potential logic errors leading to overflows (#3390)

What's Changed

Full Changelog: v1.5.0...v1.5.1

v1.5.0

24 May 16:03
v1.5.0
4f88912
Compare
Choose a tag to compare

May 24th, 2023

🎉 Hermes v1.5.0 is here, packed with a slew of exciting updates, including breaking changes💥, brand-new features🎁, performance enhancements🚀, and sweeping improvements✨.

The one breaking change is the removal of the unbonding_period setting from the chain configuration. This is now replaced by a fresh ccv_consumer_chain setting for Cross-Chain Validation (CCV) consumer chains.

Also, Hermes has strengthened its misbehavior detection. With the mode.misbehaviour.enabled setting enabled (now the case by default) the relayer was already closely monitoring on-chain client updates, comparing submitted headers with those fetched from its RPC node. In the event of any discrepancy, Hermes would report the misbehaviour to the chain hosting the IBC client. As of this version, Hermes will also report the misbehaviour evidence to the reference chain.

This version rolls out a string of performance enhancements. Event batches are now delivered after a configurable delay, greatly trimming down latency when relaying, particularly on high-traffic channels. This can be adjusted using the batch_delay setting in the per-chain configuration. Plus, packet acknowledgments are only queried when there are packet commitments on the counterparty, resulting in a major speed boost for packet clearing and on-start scanning! 🚀

In addition, the trusted_node setting can now specify whether the full node Hermes connects to is trusted or not. If untrusted, the light client will verify headers included in the ClientUpdate message. However, a word of caution: configuring the full node as trusted may cut down latency but could risk sending invalid client updates to the chain. Use wisely! ⚠️
Our Hermes guide has been re-organized a bit, now featuring a new Performance Tuning page that details the settings for optimizing the performance of the relayer.

For all the debuggers out there, Hermes now equips a new --debug global flag with several selectable values, and two bonus flags, --archive-address and --restart-height that enable a client update following a genesis restart without an IBC upgrade proposal.

When it comes to telemetry, the destination chain is now added to the labels of the confirmed packet metrics.

Take note that some metrics now have the suffix _total. If you're using a running a Grafana dashboard or any other tool relying on the metric names or labels, an update might be needed. The corresponding page in the guide reflects the new metric names and labels for your convenience.

There's also a fresh configuration option to specify the directory used for the keyring store.

From this version onwards, multi-platform (arm64 and amd64) images will be distributed both on Docker Hub and the GitHub Content Repository.

Note for operators

⚠️ Be aware that this release contains a couple breaking
⚠️ changes to the Hermes configuration and telemetry metrics.
⚠️ Please consult the UPGRADING.md document for more details.

What's changed

  • Improved tests for 'hermes config auto' by @ljoss17 in #3287
  • Use dependabot for Github Actions by @faddat in #3304
  • Publish multi-platform (arm64/amd64) images to Docker Hub and GHCR by @faddat in #3305
  • Add changelog entry for #3303 by @romac in #3316
  • Output profiling data as JSON, with additional metadata by @romac in #3329
  • Allow gRPC calls with larger query responses by @ljoss17 in #3335
  • Add destination chain to confirmed packet metrics by @ljoss17 in #3302
  • Document metric label updates by @ljoss17 in #3343
  • Add migaloo ics29 tests by @ljoss17 in #3346
  • Emit events batch after a configurable delay by @romac in #3327
  • Detect light client attacks and report them to both the chain and the RPC node by @romac in #3224
  • Only query for packet acks when there are packet commitments on the counterparty by @romac in #3347
  • Allow disabling header verification by setting trusted_node = true in the chain config by @romac in #3328
  • Improve visibility of config auto command by @seanchen1991 in #3301
  • Add --debug=rpc and --debug=profiling flags for enabling debug output by @romac in #3352
  • Handle duplicate packet events and perform full clearing even in the presence of errors by @romac in #3361
  • Revert "Send consumer misbehaviour message IcsConsumerMisbehaviour to the provider" by @romac in #3242
  • Release Hermes v1.5.0 by @romac in #3363
    Full Changelog: v1.4.1...v1.5.0

v1.4.1

02 May 10:28
v1.4.1
45b5c29
Compare
Choose a tag to compare

v1.4.0

28 Mar 08:24
v1.4.0
daad028
Compare
Choose a tag to compare

March 27th, 2023

Hermes v1.4.0 brings compatibility with chains based on Tendermint/CometBFT 0.37, while retaining compatibility with Tendermint/CometBFT 0.34. This is transparent and does not require any additional configuration.

The relayer now supports ICS consumer chains, which only requires operators to specify the unbonding_period parameter in the chain settings. This is a temporary requirement, in the future Hermes will seamlessy support consumer chains with minimal changes to the configuration.

This release also deprecates support for chains based on Cosmos SDK 0.43.x and lower, and bumps the compatibility to Cosmos SDK 0.47.x.

The relayer now also allows operators to filter out packets to relay based on whether or not they contain a fee, and the minimal amount of such fee.
Please check the relevant documentation in the Hermes guide for more information.
Additionally, Hermes now also tracks metrics for ICS29 fees.

This release includes a new query client status CLI to quickly check whether a client is active, expired or frozen.


📖 CHANGELOG

v1.3.0

17 Feb 15:26
v1.3.0
d3ad2eb
Compare
Choose a tag to compare

February 17th, 2023

Hermes v1.3.0 adds support for Cross-chain Queries (ICS 031), implements optimistic channel handshake for lower latency, and comes with a major performance improvement when clearing packets on busy channels for chains using a recent version of IBC-Go.
This release also brings a few bug fixes related to closing ordered channels and upgrading clients.


📖 CHANGELOG

v1.2.0

14 Dec 11:12
v1.2.0
061f14f
Compare
Choose a tag to compare

Hermes v1.2.0

December 14th, 2022

Hermes v1.2.0 brings a bunch of new features and other improvements, such as support for Ed25519 keys, more robust health check which takes into account the Tendermint min_gas_price setting, and various bug fixes related to the handling of begin- and end-block events in the Tendermint indexer.

Additionally, IBC clients with a trust level between 1/3 and 2/3 inclusive are now allowed.


📖 CHANGELOG

v1.1.0

28 Oct 12:29
v1.1.0
0daa3e1
Compare
Choose a tag to compare

Hermes v1.1.0

August 29th, 2022

Note to developers

The ibc and ibc-proto crates have been split into their own repositories under the cosmos organization.

Moreover, Hermes will not be using the original ibc crate anymore, and will from now on use instead the ibc-relayer-types crate, which is a trimmed down version of the ibc crate that contains only the data structures used by Hermes.

This change does not impact end-users of Hermes, but may affect downstream consumers of the ibc-relayer library in some cases.

Please reach out to us if you encounter any issue following from this reorganization of the repository.


📖 CHANGELOG

v1.0.0

22 Aug 12:51
v1.0.0
ed4dd8c
Compare
Choose a tag to compare

Hermes v1.0.0

August 22nd, 2022

After more than 2 years in the works, this is the first stable release of the Hermes relayer! 🎉

For reaching this milestone, we thank the valuable contributions of over 50 individuals, spread across more than 800 documented & resolved issues. Beside Cosmos-SDK and Tendermint, we are fortunate to maintain some of the most active and intense repository in the Cosmos ecosystem. Most importantly, we thank the relentless work of relayer operators that have already relayed billions worth of value in IBC production networks, and have provided us with invaluable feedback on improving Hermes and raising the overall stability of IBC. Kudos to everyone!

Note for operators

⚠️ If upgrading from Hermes v0.15.0, be aware that this release contains multiple breaking
⚠️ changes to the Hermes command-line interface and configuration.
⚠️ Please consult the UPGRADING document for instructions for more details.

Highlights

  • The performance and reliability of the relayer has been greatly improved
  • Merged commands keys add and keys restore into single command keys add
    The flag to specify the key name for the CLI command keys add has been changed
    from -n to -k. Restoring a key now takes a file containing the mnemonic as
    input instead of directly taking the mnemonic
  • Deprecated gas_adjustment setting in favor of new gas_multiplier setting.
    Check out the upgrading instructions for more details about the new setting.
  • Updated all CLI commands to take flags instead of positional arguments
  • Renamed query packet unreceived-packets to query packet pending-sends
    and query packet unreceived-acks to query packet pending-acks
  • Added CLI command keys balance which outputs the balance of an account associated with a key
  • Added CLI command query channel client which outputs the channel's client state
  • Added CLI command query transfer denom-trace which outputs the base denomination and path of a given trace hash
  • Dropped the raw prefix from all the tx raw commands
  • Remove the four duplicate commands:
    • tx raw update-client, which is the same as update client
    • tx raw upgrade-client, which is the same as upgrade client
    • tx raw upgrade-clients, which is the same as upgrade clients
    • tx raw create-client, which is the same as create client
  • [A new section was added to guide][telemetry-guide] which describes how the new metrics
    can be used to observe both the current state of the relayer and the networks it is connected to
  • Added many new metrics to the telemetry. The full list can be found in new the guide section linked above

📖 CHANGELOG

v1.0.0-rc.2

08 Aug 15:58
v1.0.0-rc.2
d9c6f89
Compare
Choose a tag to compare
v1.0.0-rc.2 Pre-release
Pre-release

August 8th, 2022

This is the third release candidate for Hermes v1.0.0 🎉

📖 CHANGELOG

v1.0.0-rc.1

27 Jul 16:33
v1.0.0-rc.1
54ae389
Compare
Choose a tag to compare
v1.0.0-rc.1 Pre-release
Pre-release

July 27th, 2022

This is the second release candidate for Hermes v1.0.0 🎉

📖 CHANGELOG

Note for operators

⚠️ This release contains multiple breaking changes to the Hermes command-line interface and configuration.
⚠️ Please consult the UPGRADING document for instructions to update to Hermes v1.0.0-rc.1.