Expand description

This library implements the InterBlockchain Communication (IBC) protocol in Rust. IBC is a distributed protocol that enables communication between distinct sovereign blockchains. Loose analogies may be drawn between the IBC protocol and the TCP/UDP protocols that enable communication over the internet via packet streaming. Indeed, IBC also encodes the notion of ordered and unordered packet streams.

The layout of this crate mirrors the classification of the Interchain Standards. The classification consists of Core, Clients, Applications, and Relayer.

Core consists of the designs and logic pertaining to the transport, authentication, and ordering layers of the IBC protocol, the fundamental pieces.

Clients consists of implementations of client verification algorithms (following the base client interface that is defined in Core) for specific types of chains. A chain uses these verification algorithms to verify the state of remote chains.

Applications consists of various packet encoding and processing semantics which underpin the various types of transactions that users can perform on any IBC-compliant chain.

Relayer contains utilities for testing the ibc crate against the Hermes IBC relayer. It acts as scaffolding for gluing the ibc crate with Hermes for testing purposes.

Modules§

Macros§

  • Downcast the given arguments to the associated enum variant.

Type Aliases§

  • Re-export of ICS 002 Height domain type