mkaczanowski / ibc-rs

IBC modules and relayer - Formal specifications and Rust implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ibc-rs

Build Status End to End testing Apache 2.0 Licensed Rust Stable Rust 1.49+

Rust implementation of the Inter-Blockchain Communication (IBC) protocol.

This project comprises primarily four crates:

  • The ibc crate defines the main data structures and on-chain logic for the IBC protocol.
  • The ibc-relayer crate provides an implementation of an IBC relayer, as a library.
  • The ibc-relayer-cli is a CLI (a wrapper over the ibc-relayer library), comprising the hermes binary.
  • The ibc-proto is a library with proto definitions necessary for interacting with Cosmos SDK IBC structs.

See the table below for more details.

Includes TLA+ specifications.

Crate name Type Version Docs
ibc (modules) lib IBC Crate IBC Docs
ibc-relayer lib IBC Relayer Crate IBC Relayer Docs
ibc-relayer-cli bin: hermes IBC Relayer CLI Crate IBC Relayer CLI Docs
ibc-proto lib IBC Proto Crate IBC Proto Docs

Requirements

Developed with the latest stable version of Rust: 1.49.0. (May work with older versions.)

Hermes Guide

The relayer CLI binary, called hermes, has a comprehensive guide at hermes.informal.systems.

Contributing

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

This repo contains the TLA+ specification and Rust implementation for the IBC modules and relayer. If you're interested in contributing, please comment on an issue or open a new one!

See also CONTRIBUTING.md.

Versioning

We follow Semantic Versioning, though APIs are still under active development.

Resources

License

Copyright © 2021 Informal Systems Inc. and ibc-rs authors.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

IBC modules and relayer - Formal specifications and Rust implementation

License:Apache License 2.0


Languages

Language:Rust 92.4%Language:TLA 2.6%Language:Python 2.4%Language:Shell 1.5%Language:CSS 0.9%Language:Dockerfile 0.2%Language:JavaScript 0.0%