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
andrest-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 settingtelemetry.enabled = false
andrest.enabled = false
, respectively.
- Remove the
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 toevent_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 }
- Add support for upgrading channels, as per the ICS 004 specification (#3228)
IMPROVEMENTS
- Integration Test Framework
- Update the version of Juno running the integration tests in the CI from
v17.1.1
tov21.0.0
(#3959) - Update the version of Migaloo Chain running the integration tests in the CI from
v3.0.2
tov4.1.3
(#3960) - Update the version of
wasmd
running the integration tests in the CI fromv0.30.0
tov0.50.0
(#3961) - Update the version of ibc-go simapp running the integration tests in the CI from
v8.2.0
tov8.3.1
(#4009)
- Update the version of Juno running the integration tests in the CI from
- Relayer Library
- Update to tendermint-rs v0.36.0 (#3966)
- Use
packet_ack_hex
event attribute instead of deprecatedpacket_ack
attribute to decodeWriteAck
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)
- Use RPC (pull) event source instead of WebSocket (push) when generating configuration with
BUG FIXES
- Relayer Library
- Relayer CLI