Releases: cosmos/relayer
v2.1.2
Patch Release 🔨
This patch fixes an issue with the channel filters. Packets from dst -> src were wrongfully being filtered out of the Path Processor when a channel filter was applied.
In addition, this patch adds the ability to quickly begin relaying on all configured chains.
What's Changed
- Add ability to run all paths in config easily by @jackzampolin in #999
- Fix legacy race condition by @agouin in #1005
- fix counterparty path filter by @agouin in #1000
Full Changelog: v2.1.1...v2.1.2
v2.1.1
Patch Release 🔨
This patch fixes two issues we found in v2.1.0:
- Fix race conditions with relaying multiple paths per process
- Fix simultaneous packet flows on ordered channels e.g. ICA channels
What's Changed
- ordered channels one recv_packet at a time by @agouin in #992
- path processor race by @agouin in #995
- Use in process Relayer for race detection by @agouin in #996
Full Changelog: v2.1.0...v2.1.1
v2.1.0
Highlights
- Prometheus metrics regarding observed/relayed packets, wallet balances, and more!
- Ability to relay multiple paths in a single process:
rly start path1 path2 path3
. - Event based relaying is now default! Previously you needed to specify this with the
-p events
flag. - Fix for EVMOS relaying #940
- Fixes for multiple concurrent ICA handshakes and packet flows.
- Config file locking for concurrent path linkage.
What's Changed
- Initial prometheus by @agouin in #882
- Remove dead code connection handshake methods by @agouin in #891
- Remove dead code channel handshake methods by @agouin in #892
- Consolidate MsgTransfer by @agouin in #893
- Remove dead code across codebase & the
interchain
directory by @jtieri in #894 - Remove dead code of old auto update client by @agouin in #895
- Remove FetchCommitResponse dead code by @agouin in #896
- PacketInfo Packet method by @agouin in #898
- Add workflow for testing both events and legacy by @agouin in #897
- Doc for new chain implementation by @agouin in #911
- Consolidate provider by @agouin in #874
- Update to latest ibctest by @mark-rushakoff in #912
- Update to ibc-go/v5 and cosmos-sdk/v0.46.0 by @jtieri in #913
- Clean up scripts folder by @boojamya in #919
- Use self-hosted runner for ibctest integration tests by @agouin in #943
- bugfix - intermittent channel handshake failure by @agouin in #937
- Adding MinGasAmount by @joeabbey in #940
- cosmos - begin and end block event parsing by @agouin in #953
- Fix nil pointer for begin/end block events by @agouin in #956
- Fix bug with tracking processing channel msgs by @jtieri in #970
- Clarify demo by @boojamya in #974
- Additional Metrics by @joeabbey in #963
- Update IBCdata struct by @JeremyParish69 in #981
- Fix flattening of events by @agouin in #979
- Fix unnecessary retention of irrelevant messages by @agouin in #980
- Config file lock by @agouin in #987
- ignore recv packet with empty ack bytes by @agouin in #985
- Relay multiple paths from the same process by @agouin in #988
- Default to events processor by @agouin in #989
New Contributors
- @JeremyParish69 made their first contribution in #981
Full Changelog: v2.0.0...v2.1.0
v2.1.0-rc1
Highlights
- Add ability to set a MinGasAmount in config file to workaround AnteHandlers that disallow 0 gas. Setting this to a non-zero value (
1
) is necessary to relay on Evmos. - Resolves a caching issue where the counterparty connection ID will be empty if a
MsgConnectionOpenInit
message was observed in the history after the initial connection state was cached by the CosmosChainProcessor. - Adds begin and end block event parsing. Necessary for ICA.
What's Changed
- Initial prometheus by @agouin in #882
- Remove dead code connection handshake methods by @agouin in #891
- Remove dead code channel handshake methods by @agouin in #892
- Consolidate MsgTransfer by @agouin in #893
- Remove dead code across codebase & the
interchain
directory by @jtieri in #894 - Remove dead code of old auto update client by @agouin in #895
- Remove FetchCommitResponse dead code by @agouin in #896
- PacketInfo Packet method by @agouin in #898
- Add workflow for testing both events and legacy by @agouin in #897
- Doc for new chain implementation by @agouin in #911
- Consolidate provider by @agouin in #874
- Update to latest ibctest by @mark-rushakoff in #912
- Update to ibc-go/v5 and cosmos-sdk/v0.46.0 by @jtieri in #913
- Clean up scripts folder by @boojamya in #919
- Use self-hosted runner for ibctest integration tests by @agouin in #943
- bugfix - intermittent channel handshake failure by @agouin in #937
- Adding MinGasAmount by @joeabbey in #940
- cosmos - begin and end block event parsing by @agouin in #953
Full Changelog: v2.0.0...v2.1.0-rc1
v2.0.0
v2.0.0-rc4
What's Changed
- Add support for ORDERED channel timeouts by @jtieri in #855
- Add initial block history flag to the CLI cmds for creating connections by @jtieri in #856
- query for ibc header if trusted consensus height is zero. by @agouin in #857
- Move cosmos provider into relayer/chains/cosmos by @agouin in #862
- Update to latest
ibctest
version by @jtieri in #864 - Fix failing conformance tests and broken
ibctest
interface by @jtieri in #866 - Update README.md by @snipeTR in #860
- Add ability to provide a custom light client trusting period by @boojamya in #869
- Fix link on README.md by @Choi-Jinhong in #859
- Handle closing of channels by @jtieri in #863
New Contributors
Full Changelog: v2.0.0-rc3...v2.0.0-rc4
v2.0.0-rc3
Summary
This release candidate adds the -p events
flag/argument to the rly start
command.
This implements a new architecture that drastically reduces the load on RPC nodes. While using this flag has proven to be efficient and effective, it is still in an experimental stage.
What's Changed
- CosmosChainProcessor Connection message handlers by @agouin in #798
- CosmosChainProcessor Channel message handlers by @agouin in #799
- PathProcessor timeout correlation by @agouin in #800
- PathProcessor Connection and Channel handshake correlation by @agouin in #801
- CosmosChainProcessor light block provider by @agouin in #802
- PathProcessor - packet IBC message assembly by @agouin in #803
- Event processor - MsgUpdateClient by @agouin in #806
- PathProcessor - send messages by @agouin in #807
- Reorg of pathEndRuntime to its own file by @agouin in #811
- PathProcessor - client, connection, and channel filtering by @agouin in #812
- EventProcessor bugfixes by @agouin in #814
- Remove channel and connection handshake appends for now by @agouin in #817
- CosmosChainProcessor - initialize channel state by @agouin in #816
- Usercase extension with 'rly tx transfer' by @meetrick in #805
- IBCHeaderAtHeight provider method by @agouin in #815
- PathProcessor - Only relay on open channels by @agouin in #818
- EventProcessor architecture - wire up with flag by @agouin in #813
- Remove duplicate command:
rly config add-chains
by @boojamya in #809 - Use provider for all CosmosChainProcessor queries by @agouin in #819
- Clean up adding paths in client by @boojamya in #810
- PathProcessor - msg assembly optimization by @agouin in #820
- PathProcessor reorg by @agouin in #822
- ibctest gh actions workflow, build and use docker image by @agouin in #821
- Bump lens version by @jtieri in #826
- explicit types between chain processors and provider message assembly by @agouin in #827
- EventProcessor - message lifecycle mechanism by @agouin in #832
- refactor: Replace interface{} with any by @DavidNix in #833
- PathProcessor/Provider - separate proof queries from message assembly by @agouin in #835
- PathProcessor/Provider - connection and channel handshakes by @agouin in #836
- CosmosChainProcessor - channel and connection message handlers by @agouin in #838
- CLI - Connection handshakes by @agouin in #834
- PathProcessor - parallelize message assembly by @agouin in #837
- CLI - channel handshakes by @agouin in #840
- Bump lens version by @jtieri in #842
- PathProcessor - send messages timeout by @agouin in #841
- Mainnet cleanup by @agouin in #843
- CosmosChainProcessor - block results query timeout by @agouin in #848
- CosmosChainProcessor - forward parsed events for all actions by @agouin in #849
- Memo config and flag by @agouin in #850
- Switch correlation from action to event type by @agouin in #851
- Fix processing caches leak by @agouin in #854
New Contributors
Full Changelog: v2.0.0-rc1...v2.0.0-rc3
v2.0.0-rc1
**This version Introduces a BREAKING change to your config file**
See: config_migration
Overview:
- Interact with the relayer with
chain-name
rather thanchain-ID
- Evmos support
- Improved relaying efficiency
- Improved logging and error handling
- Improved provider implementation
Note: The relayer is being refactored to relay packets and acknowledgments based on block events as opposed to expensive generic queriers. This is still a work in progress.
What's Changed
- Remove NewRelayMsgs function by @mark-rushakoff in #706
- Concurrently create clients in CreateClients by @mark-rushakoff in #707
- make integration tests more flexible for integrating non-Cosmos based chains by @jtieri in #709
- Update cosmwasm bash test scripts and bump cosmwasm version by @jtieri in #710
- Create connections faster by @mark-rushakoff in #711
- Create channels faster by @mark-rushakoff in #713
- Show usage when incorrect number of CLI args provided by @mark-rushakoff in #712
- Move cmd_test.System type into internal/relayertest package by @mark-rushakoff in #714
- Add ibctest module by @mark-rushakoff in #719
- Skip retrying sending messages with invalid proofs by @mark-rushakoff in #723
- relayPacketsFromResultTx: should get block on dst chain by @tpkeeper in #718
- Do not retry on invalid packet errors by @mark-rushakoff in #724
- Refactor events used in
Provider
implementation by @jtieri in #725 - Update ibctest to latest ibc-test-framework by @mark-rushakoff in #728
- Only log successfully relayed packets by @jtieri in #729
- General cleanup in relayer.CreateClient by @mark-rushakoff in #730
- Directly calculate (*CosmosProvider).TrustingPeriod by @mark-rushakoff in #731
- arm64 docker by @agouin in #734
- Remove ineffective height queries + quit retrying on
RelayPacketFromSequence
by @jtieri in #735 - log client id on successful transaction by @boojamya in #736
- Remove
Encoding
field fromChain
by @jtieri in #732 - Extract the channels from the events by @joeabbey in #745
- optimize trace match by @ItsFunny in #740
- Fix docker versions in tests by @agouin in #749
- Update to latest version of ibctest by @mark-rushakoff in #752
- Properly handle timeouts and packet sequence numbers on
ORDERED
channels by @jtieri in #663 - Fix acks by @agouin in #756
- readme: how to use specific version of ibctest by @boojamya in #757
- Slim down path processor, mock chain processor by @agouin in #754
- send message timeouts, main loop optimization by @agouin in #755
- Zero state bug by @agouin in #760
- Update to latest commit of ibctest by @mark-rushakoff in #761
- cosmos events parser by @agouin in #758
- Provide clearer logging when encountering issues with underlying node by @jtieri in #764
- Add local dockerfile for non-buildkit builds by @agouin in #766
- Go 1.18 by @agouin in #768
- Query channel state and update slice of open channels accordingly by @jtieri in #763
- Use a more meaningful value for the size of the buffered channel by @jtieri in #769
- CosmosChainProcessor query loop by @agouin in #765
- Update to latest ibctest by @mark-rushakoff in #778
- Use updated version of lens by @jtieri in #779
- Map config by chain_name and use chain_name across relayer instead of chain_ID by @boojamya in #744
- Re-organize the
cosmos
package by @jtieri in #781 - Remove duplicate package import & fix var name/package name collision by @jtieri in #782
- Use
strings.EqualFold
by @jtieri in #784 - Remove the need for importing the
flags
anderrors
packages from Cosmos SDK by @jtieri in #788 - Documentation for updated config file by @boojamya in #789
- Use pointer receiver type & return using a type conversion vs. struct literal by @jtieri in #783
- Update to latest version of ibctest by @mark-rushakoff in #792
- Properly handle client creation for non-tendermint light clients by @jtieri in #786
- Refactor client matching logic when creating clients by @jtieri in #791
- CosmosChainProcessor - IBC message handlers by @agouin in #777
- CosmosChainProcessor Client message handlers by @agouin in #796
- point
path fetch
to chain-reg and avoid overwriting channel-filters by @boojamya in #785
New Contributors
- @tpkeeper made their first contribution in #718
- @joeabbey made their first contribution in #745
- @ItsFunny made their first contribution in #740
Full Changelog: v2.0.0-beta7...v2.0.0-rc1
v2.0.0-beta7
Upon thoroughly testing beta4, the highlights of this release include:
*Debug server initiated after starting rly start
*Cleaner logs with more relevant info including: gas, fees paid, and fee payer
*Improved overall stability
Full change log below.
Please continue to submit issues and/or reach out via Discord: https://discord.gg/Bhg6RpSwCH IBC Gang/#rly
What's Changed
- Add debug server by @mark-rushakoff in #641
- update ldflags to use
v2
in the path names by @jtieri in #644 - Update CI files to use go 1.18 by @mark-rushakoff in #647
- Report relayer commit using debug.BuildInfo by @mark-rushakoff in #649
- Drop unnecessary env update in goreleaser by @mark-rushakoff in #650
- Remove unused Random functions by @mark-rushakoff in #652
- Refactor relayUnrelayedPacketsAndAcks by @mark-rushakoff in #651
- Add shentu-2.2 chain in interchain by @meetrick in #655
- Replace time.Sleep calls with time.After and context check by @mark-rushakoff in #656
- Support explicit log format configuration by @mark-rushakoff in #657
- Include error when logging failure to query packet commitments by @mark-rushakoff in #658
- Remove clib package and relayer controller by @mark-rushakoff in #659
- fix timestamp based timeouts failing to be properly handled by @jtieri in #653
- update del description by @boojamya in #661
- fix node-state query by @boojamya in #662
- Pass explicit logger to relayer package functions by @mark-rushakoff in #660
- Use narrower parameters to (*RelayMsgs).Send() by @mark-rushakoff in #665
- Add shentu-2.2 paths in interchain by @meetrick in #664
- Adjust some debug-level logs to info level by @mark-rushakoff in #666
- Add return type to (*RelayMsgs).Send() by @mark-rushakoff in #667
- Fix more staticcheck errors by @mark-rushakoff in #668
- Remove Last field from RelayMsgs by @mark-rushakoff in #669
- fix block height timeout issue by @jtieri in #670
- Remove references to github.com/pkg/errors by @mark-rushakoff in #671
- Begin checking errors from SendMsgsResult by @mark-rushakoff in #672
- update timeout flag descriptions by @boojamya in #673
- Use SendMsgsResult from all Send calls by @mark-rushakoff in #675
- Return failure value after failing to relay acks by @mark-rushakoff in #676
- Fix data race on cosmos provider config key by @mark-rushakoff in #677
- add guidance around debug server to readme by @boojamya in #678
- Properly compose timeouts in
SendTransferMsg
and properly check timestamp inrelayPacketsFromResultTx
by @jtieri in #679 - Log how to address a failure to start on debug listen error by @mark-rushakoff in #681
- Disambiguate some duplicate log messages by @mark-rushakoff in #682
- Prefer test logging over inline comments by @mark-rushakoff in #683
- Update to the latest commit of lens by @mark-rushakoff in #684
- Check previously ignored error in
InjectTrustedFields()
by @jtieri in #686 - Ensure proper error returns from PrependUpdateClientMsg by @mark-rushakoff in #687
- Retry building a message when sending results in wrong sequence by @mark-rushakoff in #688
- Use test logging in integration test chainTest by @mark-rushakoff in #689
- Properly check retry error in testClient by @mark-rushakoff in #690
- Concurrently send messages in (*RelayMsgs).Send by @mark-rushakoff in #696
- Avoid using Tendermint
ResultTx
type in favor ofRelayerTxResponse
& check for nilMsgAck
msgs by @jtieri in #698 - Log gas, fees paid, and fee payer in successful cosmos txs by @mark-rushakoff in #699
- Change log levels for when there are or are not packets/acks to be relayed by @jtieri in #700
- Fix data race in getting transfer message signers by @mark-rushakoff in #701
- Avoid retrying SendMessages when receiving invalid height error by @mark-rushakoff in #702
- Fix pattern to match tags for release job by @mark-rushakoff in #703
- avoid calls to
ValidateBasic()
in ibc-go by @jtieri in #704 - Run release workflow on any tag by @mark-rushakoff in #705
New Contributors
Full Changelog: v2.0.0-beta4...v2.0.0-beta7
v2.0.0-beta4
Overview
v2 of the relayer introduces some new features, several improvements, and bug fixes.
- Moved main relayer logic behind
Provider
interface which paves the way for non-Cosmos based chains to integrate with the relayer. - Significant changes to the config format for both chains and paths.
- Move away from channel based paths in favor of connection based paths, where the relayer will attempt to relay on all channels over a given connection.
- Add channel filter for configurable rules used in creating an allow or deny list of channels you want to relay on or avoid.
- Upgrade to
ibc-go v3
. - Introduction of Zap for structured logging.
- Improved concurrency model for graceful shutdowns.
- Ability to add and restore keys with coin types other than
118
. - Add ability to fetch chain metadata from the chain-registry via the
rly chains add
command. - Fix the
rly start
command. - Improvements around new path generation/linking between two chains.
- Dynamic querying for
TrustingPeriod
used in creating clients, set to be 85% of the chains unbonding time.
What's Changed
- Add Terra <> Osmosis cannonical path info by @jackzampolin in #522
- Fix fetch paths command & update for Cosmos repo by @jtieri in #523
- Log errors thrown by SendMsgs() by @jtieri in #524
- Update chain/path metadata for newly launched chains by @jtieri in #525
- fix race conditions by @jtieri in #526
- fix(cmd): fix command aliases of balance by @storyicon in #527
- docs(readme): fix the demo in readme by @storyicon in #528
- add likecoin configs by @williamchong in #529
- update CODEOWNERS by @colin-axner in #531
- Provider Interface by @jackzampolin in #521
- cleaning up code and small fixes by @jtieri in #540
- Remove cosmos package in favor of lens & squash bugs by @jtieri in #542
- Update README.md by @iranzo in #565
- Pull chain data from Chain Registry, Add paths new cmd, & Improve CLI experience/quick-start guide by @jtieri in #557
- Updated client to remove linter by @boojamya in #572
- Refactor & improve new path generation in the relayer by @jtieri in #569
- WIP: relayer start refactor by @jtieri in #574
- Cleanup
rly start
by @jtieri in #576 - add somm path info to interchain dir by @boojamya in #575
- Moving
Provider
implementation back into the relayer fromlens
by @jtieri in #578 - removed
paths fetch
dependency for interchain/chains dir by @boojamya in #582 - Fix staticcheck ST1005 warnings by @mark-rushakoff in #590
- Fix staticcheck warnings in cmd package by @mark-rushakoff in #593
- Avoid ioutil package by @mark-rushakoff in #594
- Refactor cmd package to pass stdio by @mark-rushakoff in #597
- Add vendor to .gitignore by @mark-rushakoff in #599
- Refactor to connection based relaying model by @jtieri in #585
- Publish relayer docker image to ghcr by @agouin in #604
- Extract appState struct to avoid global values in cmd package by @mark-rushakoff in #606
- Add channel filter to
Path
config by @jtieri in #605 - Add tests for cmd/keys, cmd/chains by @mark-rushakoff in #607
- Pass explicit context.Context through Provider interfaces by @mark-rushakoff in #609
- Provide context.Context in main execution path by @mark-rushakoff in #610
- Use retry.Context everywhere by @mark-rushakoff in #611
- Fix data race during rly paths list by @mark-rushakoff in #614
- Add Mark to codeowners by @mark-rushakoff in #618
- Use errgroup.WithContext where applicable by @mark-rushakoff in #612
- add missing channel flags to the
link-then-start
cmd by @jtieri in #616 - fix nil pointer error when using
rly config show
after usingrly paths new
by @jtieri in #613 - add channel-ids to logging in
StartRelayer()
by @jtieri in #617 - Embed cosmos SDK version info in binary by @mark-rushakoff in #619
- Use shallow clone in get-gaia make target by @mark-rushakoff in #620
- Run unit tests in CI by @mark-rushakoff in #622
- Only validate client and connection identifiers if they are set already. by @jtieri in #626
- Change function signature to accept non-pointer types in
isMatchingClient
by @jtieri in #627 - Ensure StartRelayer goroutine indicates shutdown by @mark-rushakoff in #628
- Switch to zap logging by @mark-rushakoff in #629
- add a command to query the base denom and denom trace from an IBC denom by @mikhailbuslaev in #625
- bump lens dep & wire up
--coin-type
flag by @jtieri in #630 - Readme overhaul by @boojamya in #615
- update urls to example configs so
--url
flag works by @jtieri in #631 - Add umeehub and umeeosmo paths by @facundomedica in #624
- update .goreleaser.yaml by @jtieri in #632
- concatenate
v2
to the module name & fix import paths by @jtieri in #633 - update action to work with wildcard suffixes (e.g. -beta, -alpha, -rc) by @jtieri in #634
- fix tags regex in github release action by @jtieri in #635
- remove unnecessary linker flag in
goreleaser.yaml
by @jtieri in #638
New Contributors
- @storyicon made their first contribution in #527
- @williamchong made their first contribution in #529
- @iranzo made their first contribution in #565
- @boojamya made their first contribution in #572
- @mark-rushakoff made their first contribution in #590
- @agouin made their first contribution in #604
- @mikhailbuslaev made their first contribution in #625
- @facundomedica made their first contribution in #624
Full Changelog: v1.0.0...v2.0.0-beta4