#consensus #ibc #cosmos #blockchain #tendermint #data-structures

no-std ibc-client-tendermint

Maintained by ibc-rs, contains the implementation of the ICS-07 Tendermint Client logic and re-exports essential data structures and domain types from ibc-client-tendermint-types crate

8 releases (4 breaking)

new 0.52.0 Apr 26, 2024
0.51.0 Mar 26, 2024
0.50.0 Jan 24, 2024
0.49.1 Jan 4, 2024
0.48.1 Nov 27, 2023

#2610 in Magic Beans

Download history 1130/week @ 2024-01-05 2281/week @ 2024-01-12 1137/week @ 2024-01-19 10551/week @ 2024-01-26 2683/week @ 2024-02-02 1813/week @ 2024-02-09 1999/week @ 2024-02-16 2326/week @ 2024-02-23 1249/week @ 2024-03-01 3379/week @ 2024-03-08 3149/week @ 2024-03-15 2464/week @ 2024-03-22 794/week @ 2024-03-29 1122/week @ 2024-04-05 771/week @ 2024-04-12 882/week @ 2024-04-19

4,652 downloads per month
Used in 5 crates (2 directly)

Apache-2.0

265KB
4.5K SLoC

IBC Clients

This top-level crate re-exports Inter-Blockchain Communication (IBC) implementations of light clients. It serves as a meta-crate, simplifying the process of importing and integrating various IBC clients into your blockchain. IBC is a distributed protocol that enables communication between distinct sovereign blockchains and IBC light clients track the consensus states and proof specs of external blockchains, which are required to properly verify proofs against the client's consensus state.

The structure within the ibc-clients crate is designed to provide flexibility for external users. It allows you to utilize the own ibc-clients crate or selectively import specific libraries, whether you need a certain IBC client implementation (e.g. ibc-client-tendermint crate) or only its associated data structures (e.g. ibc-core-tendermint-types). This versatility empowers hosts, including chain integrators, relayers, or any IBC tooling projects, to build their solutions on top of the layers that best suit their requirements.

Sub-Crates

Currently, the ibc-clients crate contains the implementation of the following IBC light clients:

ICS-07: Tendermint Light Client

[!TIP] The pre-compiled CosmWasm contract for ibc-client-tendermint-cw is available as Github workflow artifacts at Actions tab. They can be downloaded during a Github workflow using actions/download-artifact@v4 action.

ICS-08: WASM Proxy Light Client

CosmWasm Integration

  • ibc-client-cw: Types and Utilities for CosmWasm Integration
    • To utilize the CosmWasm contracts developed with this library, hosting environments must support the CosmWasm module and be using the version of ibc-go that supports the 08-wasm proxy light client.

[!CAUTION] The ibc-client-cw is currently in development and should not be deployed for production use. Users are advised to exercise caution and test thoroughly in non-production environments.

Third-party Clients

Here, we list IBC third-party clients that are compatible with ibc-rs. You should always audit the implementation of any third-party crate. If you have a client that you'd like to be added to this list, please open a PR!

Contributing

IBC is specified in English in the cosmos/ibc repo. Any protocol changes or clarifications should be contributed there.

If you're interested in contributing, please take a look at the CONTRIBUTING guidelines. We welcome and appreciate community contributions!

Dependencies

~17MB
~347K SLoC