v1.9.0
May 30th, 2024
This v1.9.0 release introduces new features and improvements to Hermes.
Major Features :
• Channel Upgrades: Hermes now handles channel upgrade events introduced in ibc-go v8, helping chains opting-in to new functionality on existing channels.
• 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 )