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.
Currently, the ibc-clients
crate contains the implementation of the following
IBC light clients:
- ibc-client-tendermint-types: Data Structures
- ibc-client-tendermint: Implementation
- ibc-client-tendermint-cw: CosmWasm Contract
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.
- 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 the08-wasm
proxy light client.
- To utilize the CosmWasm contracts developed with this library, hosting
environments must support the CosmWasm module and be using the version of
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.
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!
- ICS 6: Solomachine by Octopus Network
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!