Skip to content

Releases: informalsystems/hermes

v1.12.0

17 Feb 11:30
v1.12.0
a2e8437
Compare
Choose a tag to compare

February 17th, 2024

This release introduces support for Penumbra chain.

Please note that this feature has not been tested in the Hermes CI pipeline, but it was tested in production.

FEATURES

  • Add support for relaying between Penumbra and CosmosSDK-based chains (#4299)

v1.11.0

11 Feb 13:26
v1.11.0
9eee668
Compare
Choose a tag to compare

February 11th, 2024

This release introduces support for the first non-SDK chain with Namada compatibility 🎉

To relay for Namada, ensure the chain type in the configuration is set to Namada.

  • Add support for relaying between Namada and CosmosSDK-based chains.
    (#3705)

v1.10.5

13 Dec 14:27
v1.10.5
be0be09
Compare
Choose a tag to compare

December 13rd, 2024

This release addresses an issue with pull-mode event collection. The functionality has been enhanced to accurately retrieve events from finalized_block_events, ensuring more reliable event processing.

IMPROVEMENTS

v1.10.4

20 Nov 15:56
v1.10.4
542e14f
Compare
Choose a tag to compare

November 19th, 2024

This release introduces compatibility with the new Consumer ID for Permissionless ICS, improves detection of Tendermint/CometBFT versions for non-standard chains, and enhances IPv6 support for gRPC connections. Log messages have been refined for better clarity, including adjusting redundant packet broadcasts to INFO.

BUG FIXES

  • Relayer Library
    • Fix error messages in logs to accurately display the RPC endpoint
      that failed.
      (#4250)
    • Fix an issue where Hermes would fail to connect to gRPC servers
      with an IPv6 address.
      (#4237)
    • Fix the extraction of the chain name from the chain ID to ensure
      accurate identification.
      (#4247)

FEATURES

IMPROVEMENTS

  • General
    • Improve detection of Tendermint/CometBFT compatibility
      mode when a chain runs a non-standard version
      (#4178)
  • Relayer Library
    • Use CCV consumer ID to submit misbehaviour messages
      (#4153)
    • Improve log message when broadcasting redundant packet and set it
      to INFO instead of ERROR.
      (#4252)
  • Integration Test Framework
    • Update the versions of the following simd running the integration tests in the CI:
    • From v6.3.0 to v6.3.1

    • From v7.4.0 to v7.8.0

    • From v8.3.1 to v8.5.1

    • From v9.0.0-beta.1 to v9.0.0-rc.0

      (#4202)

    • Update the version of Gaia running the integration tests in the CI from v18.1.0
      to v20.0.0 (#4204)

v1.10.3

02 Sep 13:44
v1.10.3
e26d356
Compare
Choose a tag to compare

September 2nd, 2024

This release fixes an issue where Hermes could not connect to gRPC servers over TLS. Additionally, this release also fixes a bug in the clear packet CLI where the excluded_sequences configuration option was not always taken into account.

Furthermore, Hermes now uses abci_query instead of gRPC for some queries, for instance for querying staking parameters and service configuration during health checks, and when retrieving version information.

v1.10.2

14 Aug 12:49
v1.10.2
524ee6c
Compare
Choose a tag to compare

August 14th, 2024

This release brings significant performance improvements and introduces a new configuration options for better control over packet clearing. Enhancements include faster startup times through optimized queries and the introduction of a clear_limit setting for packet clearing. Additionally, bug fixes and updates to the integration test framework ensure greater stability and compatibility across various environments.

BUG FIXES

IMPROVEMENTS

  • Relayer Library
    • Add a new configuration clear_limit to specify the maximum number
      of packets cleared every time packet clearing is triggered.
      Defaults to 50.
      (#4071)
    • Paginate results of query_packet_commitments and query_packet_acknowledgements
      queries to speed up the scanning phase.
      (#4101)
    • Use the ibc.core.connection.v1.ConnectionParams gRPC query to retrieve maxExpectedTimePerBlock
      and check it against the configured max_block_time instead of using the /genesis endpoint.
      This improves both startup times and reliability for most chains.
      (#4143)
  • Integration Test Framework
    • Update the version of Gaia running the integration tests in the CI from v17.2.1
      to v18.1.0 (#4114)
    • Update the version of Provenance running the integration tests in the CI from v1.17.0
      to v1.19.1 (#4115)
    • Update the version of Osmosis running the integration tests in the CI from v25.0.0
      to v25.2.0 (#4116)
    • Update the version of Juno running the integration tests in the CI from v22.0.0
      to v23.0.0 (#4117)
    • Update the version of Migaloo Chain running the integration tests in the CI from v4.1.3
      to v4.2.0 (#4118)
    • Update the version of wasmd running the integration tests in the CI from v0.51.0
      to v0.52.0 (#4120)
    • Update the version of Stride running the integration tests in the CI from v21.0.0
      to v23.0.1 (#4121)
    • Update the version of Neutron running the integration tests in the CI from v3.0.5
      to v4.1.0 (#4122)

v1.10.1

23 Jul 17:45
v1.10.1
7a67ac5
Compare
Choose a tag to compare

July 23th, 2024

In this release tendermint-rs has been updated to the latest version, addressing issues with the /block_results response. This ensures compatibility with CometBFT v0.38.10.

And enhancements have been made to the logs regarding packet clearing, providing better insights and warnings for users.

BREAKING CHANGES

  • Bump version of ibc-proto from v0.46.0 to v0.47.0 and
    version of tendermint-rs from v0.37.0 to v0.38.1.
    (#4093)

IMPROVEMENTS

  • Integration Test Framework
    • Add the features packet-forward and ica to enable
      Packet Forward Middleware and ICA when running tests with Osmosis
      (#3195)
  • Relayer Library
    • Improve logs when clearing packet.
    • When Hermes doesn't pull packet data it will now warn the user
      instead of logging pulled packet data for 0 events out of X
    • When ICS20 packets are filtered due to having a receiver or memo
      field too big, the log will be at warn level instead of debug.
      (#4072)

v1.10.0

24 Jun 09:16
v1.10.0
fc998de
Compare
Choose a tag to compare

June 24th, 2024

This release enhances filter configurations and includes the following updates:

  1. excluded_sequences supports sequence ranges in addition to exact values, e.g. [1, 2, "5-10", 13] is now valid and would exclude packet with sequences 1, 2, 5, 6, 7, 8, 9, 10, 13.
  2. packet_filter now ignores unintended whitespace.
  3. A new allow_ccq per-chain configuration has been added to skip the relaying of ICS31 Cross Chain Queries.

Additionally, various improvements to testing and bug fixes have been implemented.

  • General

    • Fix a bug where in some cases, Hermes would drop all events in a
      batch that came after an event rejected by the filtering policy
      (#4034)
  • Relayer Library

    • Discard CrossChain queries intended for unconfigured chains.
      (#4021)
  • Integration Test Framework

    • Add tests to ensure that Hermes correctly relays transfer messages
      from a grantee address with granted authorisation using authz module.
      (#4046)
  • Relayer Library

    • Add a new per-chain configuration allow_ccq to enable or disable
      relaying of ICS31 Cross Chain Query packets.
      (#4040)
  • Integration Test Framework

    • Update the version of Gaia running the integration tests in the CI from v15.2.0
      to v17.2.0 (#4023)
    • Update the version of Osmosis running the integration tests in the CI from v24.0.1
      to v25.0.0 (#4024)
    • Update the version of Juno running the integration tests in the CI from v21.0.0
      to v22.0.0 (#4025)
    • Update the version of Neutron running the integration tests in the CI from v3.0.2
      to v3.0.5 (#4026)
    • Update the version of Celestia app running the integration tests in the CI from v1.4.0
      to v1.11.0 (#4027)
    • Update the version of wasmd running the integration tests in the CI from v0.50.0
      to v0.51.0 (#4029)
    • Reduce run time for ICS29 tests by immediately verifying if either
      the legacy fees, recv_fee + ack_fee + timeout_fee or current
      fees, max(recv_fee + ack_fee, timeout_fee) have been escrowed.
      (#4053)
    • Refactored the test-framework bootstrapping for n-ary chain tests
      to utilize the specified topology.
    • Currently, only linear, cyclic and fully connected topologies are supported.
      (#4038)
  • Relayer Library

    • Use custom User-Agent for Hermes queries
      (#3979)
    • Updated the channel and port filter parsing to ignore whitespaces.
      This will prevent unintended channel scanning due to accidental
      whitespaces when exact matches are specified in the packet_filter
      configuration.
      (#4045)
    • Improve the excluded_sequences configuration so that it now accepts
      ranges of sequence values in addition to exact values.
      Accepted format:
    • Exact sequence, e.g. [1, 2, 3]

    • "-" separator, e.g. ["1-3"]

      These can be combined making the following configurations equivalent:

    • excluded_sequences = { 'channel-0' = [1, "3-5", 7, "9-12"] }

    • excluded_sequences = { 'channel-0' = [1, 3, 4, 5, 7, 9, 10, 11, 12] }

      (#4047)

v1.9.0

03 Jun 13:21
v1.9.0
a026d66
Compare
Choose a tag to compare

May 30th, 2024

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

Major Features:

  1. Channel Upgrades: Hermes now handles channel upgrade events introduced in ibc-go v8, helping chains opting-in to new functionality on existing channels.
  2. Dynamic Gas Fees Compatibility: Hermes is now compatible with Skip's x/feemarket module for dynamic gas fees, in addition to Osmosis' implementation, providing more flexibility in gas fee management.

Additionally, this release includes various bug fixes enhancing the stability and performance of Hermes. These fixes address issues with channel and connection creation on older ibc-go versions, event extraction, health-check messages, and more.

BREAKING CHANGES

  • Telemetry & Metrics
    • Remove the telemetry and rest-server feature flags, ensuring Hermes is always built with telemetry and REST support. (#3878)
      Both servers can still be disabled in the configuration file, by setting telemetry.enabled = false and rest.enabled = false, respectively.

FEATURES

  • Relayer Library
    • Add support for upgrading channels, as per the ICS 004 specification (#3228)
      This feature allows chains to upgrade an existing channel to take advantage of new features without having to create a new channel, thus preserving all existing packet state processed on the channel. For example, a channel could now be upgraded to enable the ICS 029 fee middleware, allowing relayer operators on that channel to receive fees each time they relay an incentivized packet.
    • Improve reliability of event source in pull mode by proceeding to next block even if Hermes cannot parse the current block (#3894)
      Add new configuration option to event_source setting: max_retries defines how many times Hermes should attempt to pull a block over RPC.
      event_source = { mode = 'pull', interval = '1s', max_retries = 4 }

IMPROVEMENTS

  • Integration Test Framework
    • Update the version of Juno running the integration tests in the CI from v17.1.1 to v21.0.0 (#3959)
    • Update the version of Migaloo Chain running the integration tests in the CI from v3.0.2 to v4.1.3 (#3960)
    • Update the version of wasmd running the integration tests in the CI from v0.30.0 to v0.50.0 (#3961)
    • Update the version of ibc-go simapp running the integration tests in the CI from v8.2.0 to v8.3.1 (#4009)
  • Relayer Library
    • Update to tendermint-rs v0.36.0 (#3966)
    • Use packet_ack_hex event attribute instead of deprecated packet_ack attribute to decode WriteAck event (#3921)
    • Add support for dynamic gas fee for chains using Skip's x/feemarket module, while keeping compatibility with Osmosis' bespoke implementation (#4000)
  • Relayer CLI
    • Use RPC (pull) event source instead of WebSocket (push) when generating configuration with hermes config auto (#3913)

BUG FIXES

  • Relayer Library
    • Fix creation of channels and connection on chains using an unsupported version of ibc-go, eg. Sei (#3817)
    • Fix a bug where Hermes would only ever extract the first emitted ICS 031 CrossChain Query event, which would cause it to miss the other CCQ events. (#3954)
  • Relayer CLI
    • Fixed minimum-gas-prices health-check messages and make it more verbose and legible (#3893)
    • Set compat_mode for pull mode in hermes listen command (#3910)
    • Fixed the trusted height consensus state query when submitting the double vote evidence (#3999)

v1.8.3

28 May 14:42
v1.8.3
1d2aa0c
Compare
Choose a tag to compare

May 28th, 2024

This patch release fixes a bug that may happen prevent the relayer from submitting the evidence for a duplicate vote in some cases.

Bug Fixes

  • Relayer CLI
    • Fix the trusted height consensus state query when submitting the double vote evidence (#3999)