Special thanks to external contributors for this release: @CharlyCst (#347).
- Update to tendermint-rs version
0.17-RC3
(#403) - changelog Added "unreleased" section in
CHANGELOG.MD
to help streamline releases (#274) - relayer Integrate relayer spike into relayer crate (#335)
- modules
- relayer
- 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)
- Implement commands to add and list keys for a chain (#363)
- proto-compiler
- ibc-proto Refactor and allow specifying a commit at which the Cosmos SDK should be checked out (#366)
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.
- relayer & modules Alignment with ecosystem updates:
- relayer UX improvement: Remove proof option from client connections command (#205)
- modules/ics03 ICS03 Ack and Confirm message processors (#223)
- relayer-cli
- modules Routing module minimal implementation for MVP (#159, #232)
- spec/relayer Relayer specification for packet handling (#229, #234, #237)
- spec/relayer Basic packet handling in TLA+(#124)
- modules Basic relayer functionality: a test with ClientUpdate ping-pong between two mocked chains (#276)
- modules Implemented the
DomainType
trait for IBC proto structures (#245, #249). - modules & 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)
- modules/ics03 Split
msgs.rs
in multiple files, implementFrom
for all messages (#253) - ibc-proto
- spec/relayer Add support for APALACHE to the Relayer TLA+ spec (#165)
- relayer Update to tendermint v.0.16 and integrate with the new light client implementation (#90, #243)
- modules Removed "Uninitialized" state from connection (#217)
- 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 modules crate is published as ibc in crates.io
- ADR-001 and ADR-003 are complete. 🎉
- modules Renamed
modules
crate toibc
crate. Version number for the new crate is not reset. (#198) - modules/ics02
ConnectionId
s are now decoded toVec<ConnectionId>
and validated instead ofVec<String>
(#185) - modules/ics03 Removed
Connection
andConnectionCounterparty
traits (#193) - modules/ics04 Removed
Channel
andChannelCounterparty
traits (#192)
- modules/ics02 partial implementation of message handler (#119, #194)
- modules/ics07 partial implementation of message handler (#119, #194)
- architecture/ADR-003 Proposal for IBC handler (message processor) architecture (#119, #194)
- spec/relayer 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)
- relayer-cli Refactor ConnectionId decoding in
query client
(#185)
- modules/ics24 Identifiers limit update according to ICS specs (#168)
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.
- [modules|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
- relayer Query connections given client id. #169
- relayer Query connection given connection id. #136
- 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 - [relayer|modules] Implemented better Raw type handling. #156
- [repo] Add rust-toolchain file. #154
- modules Fixed the identifiers limits according to updated ics spec. #189
- [modules/relayer] Remove some warnings triggered during compilation due to dependency specification. #132
- modules 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.