November 23rd, 2021
This release honors Anca Zamfir, who has lead ibc-rs from its inception and through its first two years of life. The whole team is grateful for her dedication and the nurturing environment she created. To many more achievements, Anca!! 🥂
This release requires operators to update their Hermes configuration.
The mode
configuration section now replaces the strategy
option.
If Hermes was configured with strategy = 'packets'
, then the configuration needs to be changed in the following way:
[global]
-strategy = 'packets'
log_level = 'trace'
-clear_packets_interval = 100
-tx_confirmation = true
+
+[mode]
+
+[mode.clients]
+enabled = true
+refresh = true
+misbehaviour = true
+
+[mode.connections]
+enabled = false
+
+[mode.channels]
+enabled = false
+
+[mode.packets]
+enabled = true
+clear_interval = 100
+clear_on_start = true
+filter = false
+tx_confirmation = true
If Hermes was configured to complete connection and channel handshakes as well, ie. with strategy = 'all'
,
then on top of the changes above, mode.connections.enabled
and mode.chhanels.enabled
must be set to true
.
See the relevant section of the documented config.toml
file in the repository for more details.
- IBC Modules
- Set the connection counterparty in the ICS 003
connOpenAck
handler (#1532)
- Set the connection counterparty in the ICS 003
- General
- Relayer Library
- Allow for more granular control of relaying modes. The
mode
configuration section replaces thestrategy
option. (#1518)
- Allow for more granular control of relaying modes. The
- General
- IBC Modules
- Derive
PartialEq
andEq
onIbcEvent
and inner types (#1546)
- Derive
- Relayer Library
- The relayer will now avoid submitting a tx after the simulation failed (in all but one special case) to avoid wasting fees unnecessarily (#1479)
- Relayer CLI
October 29th, 2021
This is the final release of version 0.8.0, which now depends on the official releases of the prost
and tonic
crates.
In addition to everything that's included in v0.8.0-pre.1, this release updates the minimum supported Rust version to 1.56,
and contains various bug fixes and performance improvements which make the relayer more reliable.
A new setting was added to the Hermes configuration: max_block_time
.
This setting specifies the maximum time per block for this chain.
The block time together with the clock drift are added to the source drift to estimate
the maximum clock drift when creating a client on this chain.
For Cosmos-SDK chains a good approximation is timeout_propose
+ timeout_commit
- Update MSRV to Rust 1.56 and use the 2021 edition (#1519)
- Fix for "new header has a time from the future" chain error which would arise due to clock drift (#1445):
- Added new config param
max_block_time
to prevent the problem for appearing in newly-created clients. - Added a synchronous waiting in client update logic to allow destination chain to reach a new height before submitting a client update message.
- Added new config param
- Ensure Hermes does not send timeouts for packets that have not expired yet (#1504)
- General
- Update to official releases of
prost
0.9 andtonic
0.6 (#1502)
- Update to official releases of
- IBC Modules
- Relayer Library
- Improve performance of misbehaviour checks triggered by an
UpdateClient
event (#1417)
- Improve performance of misbehaviour checks triggered by an
October 22nd, 2021
This is a pre-release which depends on in-house forks of various Rust libraries.
As such, it is advised to avoid depending on the ibc
and ibc-relayer
crates
at version 0.8.0-pre.1.
Hermes v0.8.0-pre.1 is considered stable and it is recommended for all users to update to this version.
This release notably includes a new memo_prefix
configuration option
for specifying a prefix to be included in the memo of each transaction submitted
by Hermes.
Moreover, Hermes is now able to handle SendPacket
events originating from Tendermint
ABCI's BeginBlock
and EndBlock
methods (#1231).
- IBC Modules
- The
check_header_and_update_state
method of theClientDef
trait (ICS02) has been expanded to facilitate ICS07 (#1214)
- The
- General
- Add support for the
tx.memo
field (#1433)
- Add support for the
- IBC Modules
- Add ICS07 verification functionality by using
tendermint-light-client
(#1214)
- Add ICS07 verification functionality by using
- Relayer Library
October 4th, 2021
This minor release most notably includes a fix for a bug introduced in v0.7.0 where Hermes would always use the max gas when submitting transactions to chains based on Cosmos SDK <= 0.42. It also improves the handling of account sequence numbers
- Relayer Library
- Fix a bug introduced in Hermes v0.7.0 where tx simulations would fail on chains based on Cosmos SDK 0.42. This would cause Hermes to use the max gas specified in the config when submitted the tx, leading to high fees. (#1345)
- Only increase cached account sequence number when
broadcast_tx_sync
fails, therefore ensuring that the cached sequence number stays in sync with the node. (#1402)
- Relayer Library
- Set default trusting period to be 2/3 of unbonding period for Cosmos chains (#1392)
September 24th, 2021
This minor release brings substantial performance improvements as well as support for chains using Secp256k1 signatures in consensus votes.
It also bumps the compatibility to Cosmos SDK 0.44.
-
Support for chains which use Secp256k1 signatures in consensus votes (#1155)
-
Modified packet worker to use stubborn strategy (#1290)
-
Skip
consensus_heights
query inupdate_client
when possible (#1362) -
Support for disabling tx confirmation mechanism (#1380)
-
- Binaries in the config can be defined as URLs now.
- Add the option to set gm-lib path via the
$GM_LIB
environment variable (#1365)
- Use
core
andalloc
crates forno_std
compatibility (#1156) - Improve performance of health check, and only perform it on
hermes start
. Add ahermes health-check
command. (#1336) - Treat pre-releases of the Cosmos SDK as their standard version in compatibility check (#1337)
- Bump Cosmos SDK compatibility to v0.44.0 (#1344)
- Improve reliability of health check (#1382)
September 14th, 2021
This minor release of Hermes notably features support for Ethermint chains and transfer amounts expressed as a 256-bit unsigned integer.
This release also fixes a bug where the chain runtime within the relayer would crash when failing to decode a invalid header included in a ClientUpdate
IBC event.
-
Fix header decoding error which resulted in killing the chain runtime (#1342)
-
General
August 24th, 2021
This release of Hermes is the first to be compatible with the development version of Cosmos SDK 0.43. Hermes 0.7.0 also improves the performance and reliability of the relayer, notably by waiting asynchronously for transactions to be confirmed. Additionnally, Hermes now includes a REST server which exposes the relayer's internal state over HTTP.
-
- Set the index of
ibc::ics05_port::capabilities::Capability
(#1257)
- Set the index of
-
- Fix silent exit when requirements are missing
-
General
- Update CI to test with gaiad v5.0.5 (#1175)
-
General
- Update Modelator to 0.2.0 (#1249)
-
- Add optional destination chain and
--verbose
options forquery channels
CLI (#1132)
- Add optional destination chain and
-
- Implement
ics02_client::client_consensus::ConsensusState
forAnyConsensusState
(#1297)
- Implement
August 2nd, 2021
This minor release of Hermes re-enables the upgrade client
, upgrade clients
,
tx raw upgrade-clients
, and tx raw upgrade-chain
, and otherwise
contains a few bug fixes and internal improvements.
Upgrading from version 0.6.1
to 0.6.2
requires no explicit steps.
- Add missing
Protobuf
impl forics03_connection::connection::Counterparty
(#1247)
- Use the
flex-error
crate to define and handle errors (#1158)
- Augment ClientCreationFailed error with chain id and WS address (#1020)
- Improve the error message for config file parse errors (#1021)
- Fix for upgrade CLI regression using new type ics02::TrustThreshold (#1229)
- Add semantic validation of of
max_tx_size
andmax_num_msg
config options (#1245)
July 22nd, 2021
This minor release mainly improves the reliability of the relayer by ensuring that pending packets are cleared on start, and that Hermes can recover from the WebSocket subscriptions being closed under its feet by Tendermint.
Upgrading from version 0.6.0
to 0.6.1
requires no explicit steps.
WARNING: Due to a regression (#1229), the
upgrade client
,tx raw upgrade-clients
, andtx raw upgrade-chain
commands have been temporarily disabled in this version. These commands will be re-enabled in the next version.
July 12th, 2021
Many thanks to Fraccaroli Gianmarco (@Fraccaman) for helping us improve the reliability of Hermes (#697).
This release includes two major features to Hermes: (1) support for reloading the chains from the configuration file at runtime, and (2) a filtering mechanism to restrict Hermes activity based on predefined parameters (e.g., packet relaying on certain ports and channels exclusively, and ignoring activity for clients that have non-standard trust threshold).
In addition to these two, we have also added a health checkup mechanism, plus new
config validate
and query channel ends
CLIs.
When upgrading from Hermes v0.5.0 to v0.6.0, the most important point to watch out for is the configuration file. The Hermes config.toml configuration file has went through a few revisions, with the changes described below.
Please have a look around the config.toml directly.
This feature will restrict the channels on which Hermes relays packets. There are two new options in the configuration file:
- A global
filter
parameter to enable or disable filtering globally. - A per-chain
.filters
option that expects apolicy
(eitherallow
ordeny
) plus a list of channel and port identifiers. If policy isallow
, then packet relaying will be restricted to this list for the corresponding chain. If the policy isdeny
, then any packets from this list will be ignored.
The global filter
option additionally enables filtering of all activities
based on client state trust threshold. If enabled, Hermes will ignore all
activity for clients that have a trust threshold different than 1/3
.
This will enable the parametrization of the frequency
at which Hermes will clear pending packets. This is a global option, called
clear_packets_interval
, which applies to all chains in the configuration.
The full list of changes is described below.
-
Update to
tendermint-rs
v0.20.0 (#1125) -
Add inline documentation to config.toml (#1127)
-
- Hermes will now clear pending packets at a configurable interval (#1124)
- ibc-relayer
- Fix for schedule refreshing bug (#1143)
June 22nd, 2021
This release brings a few features, and several improvements and bug fixes to the Hermes relayer, notably the capability for Hermes to complete IBC connection handshakes when it detects that one has been initialized, as well as the ability to detect chain impersonation attacks and to dynamically estimate the gas needed to submit a transaction.
Moreover, the overall reliability and availability of the relayer has also been improved
substantially by switching over to tx_broadcast_sync
for submitting transactions.
-
- Add
--hd-path
option tokeys restore
andkeys add
commands to specify derivation path when importing keys (#1049)
- Add
-
- Minor log output improvements: color enabled, reduced redundant information (#1100)
-
- Update the on-chain IBC client with supporting headers when light client verification performs bisection when verifying a header for a client update or a misbehaviour detection (#673)
- Add mitigation for chain impersonation attacks (#1038)
- Determine gas fee dynamically per transaction (#930)
- Submit transactions with
broadcast_tx_sync
and keep track of account sequences (#986)
-
- Removed the testnet command as not all networks support it (#1050)
- Update for compatibility with Hermes's new
--hd-path
option
- ibc-relayer-cli
- Removed
--coin-type
option fromkeys restore
command. Use--hd-path
instead (#1049)
- Removed
June 3rd, 2021
- This release of Hermes features an internal telemetry service which can export metrics about the relayer to Prometheus.
- A new relaying strategy is now available, which enables Hermes to complete channel handshakes in an event-based fashion.
- Hermes now checks if another relayer may have already processed a packet event, and will not attempt to process it itself, which improves performance.
- The startup time of the relayer has been substantially improved.
- The
start-multi
command has been promoted tostart
, which means that the worker-based relayer is not experimental anymore. - A regression where Hermes would not recover after a node went down and up again was fixed.
Special thanks to Colin Axnér (@colin-axner) and Jongwhan Lee (@leejw51crypto) for raising multiple issues that helped us improve the reliability of Hermes.
-
- Started
unwrap
cleanup (#871)
- Started
- ibc-relayer-cli
- Promote
start-multi
command tostart
(#911)
- Promote
May 21st, 2021
This is minor release which brings substantial performance improvements
to the relayer (relaying 1000 packets now takes 2-5min instead of 1h+),
better UX for the ft-transfer
command, and automatic deployment of
Docker images to Docker Hub.
-
- Add a
--key
option to the tx raw ft-transfer command to override the account used for sending messages (#963)
- Add a
-
- Add support for multiple keys to the keyring (#963)
-
[release]
- Released the official Hermes image on Docker Hub (#894)
- Automatically deploy Docker Hub image during release (#967)
- ibc-relayer
- Batch together all events from all transactions included in a block (#957)
- ibc-relayer-cli
- Prevent sending
ft-transfer
MsgTransfer on a non-Open channel (#960)
- Prevent sending
Nothing
May 14h, 2021
This release improves the UX of a couple commands, fixes a bug related to delay periods, and adds support for packet timeouts based on timestamps, as well as support Protobuf-encoded keys.
-
[scripts]
- Created the Gaiad Manager
gm
CLI tool for managing gaiad instances on the local machine (#902)
- Created the Gaiad Manager
- ibc-relayer-cli
- Improve UX when querying non-existing connections and channels (#875, #920)
- More details in error messages to increase debuggability (#921, #934)
- Disallow creating a client with same source and destination chains (#932)
- Make packet worker more resilient to nodes being unreachable for a short amount of time (#943)
Nothing
May 7h, 2021
Special thanks to Jongwhan Lee (@leejw51crypto) for his contributions (#878).
This release mostly focuses on improving the UX and the experimental multi-paths relayer (start-multi
command),
which has been made more resilient against nodes going down, and is now able to clear pending packets
and periodically refresh IBC clients. The relayer now also supports ICS 027 (Interchain Accounts).
-
- Support for ICS27 (#794)
-
- Change the default for client creation to allow governance recovery in case of expiration or misbehaviour (#785)
- Use a single supervisor in
start-multi
to subscribe to all configured chains (#862) - The
start-multi
command is now more resilient to a node not being up or going down, and will attempt to reconnect (#871)
-
- Fix parsing in
chain_version
when chain identifier has multiple dashes (#878)
- Fix parsing in
-
- Fix pagination in gRPC query for clients (#811)
- Fix relayer crash when hermes starts in the same time as packets are being sent (#851)
- Fix missing port information in
hermes query channels
(#840) - Fix crash during initialization of event monitor when node is down (#863)
- Spawn a single Tokio runtime for the whole supervisor instead of one per chain (#909)
- ibc-relayer
hermes -j query channels
command now returnsresult
array with the format[{"channel_id":"channel-0","port_id":"transfer"}, ...]
instead of["channel-0", ...]
(#840)
April 14th, 2021
This release includes initial support for relaying over multiple paths from a single hermes
instance.
Adds support for relayer restart, where pending packets are cleared.
Includes support for ordered channels, packet delay, misbehaviour detection and evidence submission, client upgrade after counterparty chain upgrades.
This release brings improvements to the relayer UX by providing new and updated commands for keys, client, connection and channel management. In addition, it simplifies the configuration of and integration with the light client.
This release also finalizes the initial implementation of all the ICS 004 handlers.
-
Update to
tendermint-rs
v0.19.0 (#798) -
- Added
create connection
andcreate channel
CLIs (#630, #715) - Proposed ADR 006 to describe Hermes v0.2.0 use-cases (#637)
- Added
client-upgrade
CLI (#357) - Added delay feature for packet relaying (#640)
- Update gaia to version 4.2.0 for e2e tests on CI (#809)
- Add
start-multi
command to relay on all paths defined in the configuration (#748) - Add option to specify which events to listen for in
listen
command (#550) - Add option to customise receiver address for
ft-transfer
command (#806) - Add
keys restore
command to import a signing key from its mnemonic ([#813])
- Added
-
- Consistent identifier handling across ICS 02, 03 and 04 (#622)
-
- Replaced
rust-crypto
&bitcoin-wallet
deprecated dependencies (#352) - Fix for hard-coded account number (#752)
- Fix for chains that don't have
cosmos
account prefix (#416) - Fix for building the
trusted_validator_set
for the header used in client updates (#770) - Don't send
MsgAcknowledgment
if channel is closed (#675) - Fix a bug where the keys addresses had their account prefix overriden by the prefix in the configuration (#751)
- Replaced
-
- Fix for proto files re-compilation bug (#801)
-
MsgConnectionOpenAck.counterparty_connection_id
is now aConnectionId
instead of anOption<ConnectionId>
(#700)
-
- Remove the light client configuration from the global configuration (#793)
-
- Remove the light add and light rm commands (#793)
February 17, 2021
This release brings a quick fix for a problem with a dependency of crate
ibc-relayer
, which causes build & installation issues. Many thanks to
@Fraccaman for bringing this problem to our attention! (#672)
Additionally, this release also introduces initial implementation for most of ICS 004 handlers, and several bug fixes and improvements, e.g., refactored some CLI code, refactored the Height type in the IBC Events, and a bug fix involving packet acks in a 3-chain setup. More details below.
-
- Quick fix for
funty
breaking change bug (#665)
- Quick fix for
-
- Fix wrong acks sent with
tx raw packet-ack
in a 3-chain setup (#614)
- Fix wrong acks sent with
-
- Remove the
proof
option from CLI (#572)
- Remove the
February 4, 2021
🎉 This release brings the first publication of ibc-relayer
and
ibc-relayer-cli
to crates.io.
Noteworthy changes in this release include:
- The binary in the
ibc-relayer-cli
crate was given the name Hermes. - We published a comprehensive guide for Hermes at hermes.informal.systems.
- Major improvements to user experience, in particular at CLI level: JSON output, configurable log output level, dedicated channel handshake command, as well as overall improvements to error display and output.
-
Continous Integration (CI) end-to-end (e2e) testing with gaia v4 (#32, #582, #602)
-
Add support for streamlining releases (#507)
-
- Implement command to query the channels associated with a connection (#505)
- JSON output for queries and txs (#500)
- Added 'required' annotation for CLIs queries & txs; better error display (#555)
- Implement commands for channel close init and confirm (#538)
- Implement command to perform the handshake for a new channel (#557)
- Query all clients command (#552)
- Query all connections command (#553)
- Query all channels command (#568)
- Added a relayer binary guide (#542)
- Split the dev-env script in
setup_chains
andinit_clients
(#577)
-
- Added retry mechanism, restructured relayer (#519)
- Relay
MsgTimeoutOnClose
if counterparty channel state isState::Closed
-
Update to
tokio
1.0,prost
0.7 andtonic
0.4 (#527)
-
- Help and usage commands show 'hermes' for executable name (#590)
-
- Fix for storing
ClientType
upon 'create-client' (#513)
- Fix for storing
December 23, 2020
This release focuses on upgrading the relayer and ibc modules to the latest interfaces from the ecosystem:
tendermint-rs v0.17
, which brings the protobuf changes from tendermint v0.34.0
, plus alignment with
the latest cosmos proto versions from v0.40.0-rc5
(sometimes called 'stargate-5').
-
Update to tendermint-rs version
0.17
(#451) -
Update to cosmos-sdk IBC proto version
v0.40.0-rc5
(#451)
December 2, 2020
This release focuses on implementing relayer and relayer-cli functionality towards a full v0 implementation. We now have the full-stack implementation for supporting client creation & updates, as well as connection- and channel handshakes. We also consolidated our TLA+ specs into an "IBC Core TLA+ specification," and added ICS 020 spec.
Special thanks to external contributors for this release: @CharlyCst (#347, #419).
- ibc-relayer-cli
- Add
--all
option tolight rm
command to remove all peers for a given chain (#431)
- Add
- Update to tendermint-rs version
0.17-RC3
(#403) - changelog Added "unreleased" section in
CHANGELOG.MD
to help streamline releases (#274) - ibc
- ibc-relayer
- Retrieve account sequence information from a chain using a GRPC client (#337)
- Implementation of chain runtime for v0 (#330)
- Integrate relayer spike into ibc-relayer crate (#335)
- Implement
query_header_at_height
via plain RPC queries (no light client verification) (#336) - Implement the relayer logic for connection handshake messages (#358, #359, #360)
- Implement the relayer logic for channel handshake messages (#371, #372, #373, #374)
- ibc-relayer-cli
- Merge light clients config in relayer config and add commands to add/remove light clients (#348)
- CLI for client update message (#277)
- Implement the relayer CLI for connection handshake messages (#358, #359, #360)
- Implement the relayer CLI for channel handshake messages (#371, #372, #373, #374)
- Added basic client, connection, and channel lifecyle in relayer v0 (#376, #377, #378)
- Implement commands to add and list keys for a chain (#363)
- Allow overriding of peer_id, height and hash in light add command (#428)
- proto-compiler
- ibc/relayer-spec
- ibc-relayer
- ibc-relayer-cli
- Split tasks spawned by CLI commands into their own modules ([#331])
- V0 command implementation (#346)
- ibc
- Split
msgs.rs
of ICS002 in separate modules (#367) - Fixed inconsistent versioning for ICS003 and ICS004 (#97)
- Fixed
get_sign_bytes
method for messages (#98) - Homogenize ConnectionReader trait so that all functions return owned objects (#347)
- Align with tendermint-rs in the domain type definition of
block::Id
(#338)
- Split
October 19, 2020
This release focuses on alignment with the Cosmos ecosystem: adaptations to Tendermint-rs 0.16 and subsequently to 0.17 (0.17.0-rc1
), and numerous protobuf updates following latest stargate releases.
Additional highlights:
- Adding DomainTypes and (de)serialization capability to ICS02 and ICS03 messages and structures.
- Improvements of the IBC message processor framework (handlers, contexts and mocks).
- Added initial implementations for the ICS26 (routing module) and ICS18 (basic relayer algorithms module) for use in testing.
- Also added support for packet handling in the relayer algorithm specifications.
- ibc-relayer & ibc Alignment with ecosystem updates:
- ibc-relayer UX improvement: Remove proof option from client connections command (#205)
- ibc/ics03 ICS03 Ack and Confirm message processors (#223)
- ibc-relayer-cli
- ibc Routing module minimal implementation for MVP (#159, #232)
- ibc/relayer-spec Relayer specification for packet handling (#229, #234, #237)
- ibc/relayer-spec Basic packet handling in TLA+(#124)
- ibc Basic relayer functionality: a test with ClientUpdate ping-pong between two mocked chains (#276)
- ibc Implemented the
DomainType
trait for IBC proto structures (#245, #249). - ibc & ibc-proto Several improvements to message processors, among which (#218):
- ICS03 connection handshake protocol initial implementation and tests (#160)
- Add capability to decode from protobuf Any* type into Tendermint and Mock client states
- Cleanup Any* client wrappers related code
- Migrate handlers to newer protobuf definitions (#226)
- Extend client context mock (#221)
- Context mock simplifications and cleanup (#269, #295, #296, #297)
- ibc/ics03 Split
msgs.rs
in multiple files, implementFrom
for all messages (#253) - ibc-proto
- ibc/relayer-spec Add support for APALACHE to the Relayer TLA+ spec (#165)
- ibc-relayer Update to tendermint v.0.16 and integrate with the new light client implementation (#90, #243)
- ibc Removed "Uninitialized" state from connection (#217)
- ibc-relayer-cli Fix for client query subcommands (#231)
- disclosure-log & spec/connection-handshake Disclosed bugs in ICS3 version negotiation and proposed a fix (#209, #213)
September 1, 2020
This release focuses on the IBC message processor framework and initial implementations in ICS02 and ICS07. It also introduces an initial specification for the relayer algorithm.
Other highlights:
- The ibc crate is published as ibc in crates.io
- ADR-001 and ADR-003 are complete. 🎉
- ibc Renamed
modules
crate toibc
crate. Version number for the new crate is not reset. (#198) - ibc/ics02
ConnectionId
s are now decoded toVec<ConnectionId>
and validated instead ofVec<String>
(#185) - ibc/ics03 Removed
Connection
andConnectionCounterparty
traits (#193) - ibc/ics04 Removed
Channel
andChannelCounterparty
traits (#192)
- ibc/ics02 partial implementation of message handler (#119, #194)
- ibc/ics07 partial implementation of message handler (#119, #194)
- architecture/ADR-003 Proposal for IBC handler (message processor) architecture (#119, #194)
- ibc/relayer-spec Detailed technical specification of the relayer algorithm with focus on client update (#84)
- architecture/ADR-001 Documentation for the repository structure (#1)
- architecture/FSM-1 Connection Handshake FSM English description (#122)
- contributing Updated CONTRIBUTING.md. Please read before opening PRs (#195)
- ibc-relayer-cli Refactor ConnectionId decoding in
query client
(#185)
August 1, 2020
This release is focused on updating the query system from amino to protobuf, implementing a few queries from the CLI, and establishing an initial testing framework that will support multiple chain types.
It does not target a stable release of Cosmos-SDK chains, but is tracking the latest state of development towards the Cosmos-SDK Stargate release.
- [ibc|ibc-relayer] Refactor queries, paths, and Chain trait to reduce code and use protobuf instead of Amino. #152, #174, #155
- [repo] Moved relayer/cli to relayer-cli, relayer/relay to relayer. #183
- ibc-relayer Query connections given client id. #169
- ibc-relayer Query connection given connection id. #136
- ibc-relayer Query channel given channel id and port #163
- [spec] Channel closing datagrams in TLA+ #141
- [ci] Framework (scripts and Github Actions) for integration testing the relayer queries against
the Cosmos-SDK's
simd
binary with prepopulated IBC state in the genesis #140, #184 - [ibc-relayer|ibc] Implemented better Raw type handling. #156
- [repo] Add rust-toolchain file. #154
- ibc Fixed the identifiers limits according to updated ics spec. #189
- [ibc/relayer] Remove some warnings triggered during compilation due to dependency specification. #132
- ibc Fix nightly runs. #161
- [repo] Fix for incomplete licence terms. #153
July 1st, 2020
This is the initial prototype release of an IBC relayer and TLA+ specifications. There are no compatibility guarantees until v0.1.0.
Includes:
- Configuration file definition and validation
- Client state, consensus state, connection, channel queries.
- Note: deserialization is unimplemented as it has dependency on migration to protobuf for ABCI queries
- Per chain light clients threads are created and headers are periodically retrieved and verified.
- Per chain IBC event monitor threads are spawned and main event handler that receives them.
- Note: the event handler just displays the events.
- IBC Modules partial implementation for datastructures, messages and queries.
- Some English and TLA+ specifications for Connection & Channel Handshake as well as naive relayer algorithm.