Skip to content

Inter-Blockchain Communication Protocol (IBC) implementation in Golang.

License

Notifications You must be signed in to change notification settings

LandslideNetwork/ibc-go

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ibc-go

banner

The Inter-Blockchain Communication protocol (IBC) allows blockchains to talk to each other. This end-to-end, connection-oriented, stateful protocol provides reliable, ordered, and authenticated communication between heterogeneous blockchains. For a high-level explanation of what IBC is and how it works, please read this blog post.

This IBC implementation in Golang is built as a Cosmos SDK module. To understand more about how to use the ibc-go module as well as about the IBC protocol, please check out the Interchain Developer Academy section on IBC, or our docs.

Light Clients

ICS 14 Avalanche Light Client Integration

The Avalanche light-client is not part of the canonical IBC-go repository and must be implemented separately. Below are tailored instructions for versions below and above v0.50. Please ensure you follow these specific steps to correctly integrate the Avalanche light-client into your Cosmos SDK application.

Lower than v0.50

Integrating the Avalanche Light-Client Module in Your Cosmos SDK Application

Enhance your Cosmos SDK application by integrating the light-clients/14-avalanche module. Follow this step-by-step guide to easily import and register the Avalanche light-client in your project.

  1. Import the Avalanche Light-Client Module

    First, ensure you import the Avalanche (ava) module into your Cosmos SDK application. Typically, this is done in the app.go file, where your application's modules are defined:

    import (
      // other imports...
      ava "github.com/cosmos/ibc-go/v8/modules/light-clients/14-avalanche"
    )
  2. Register the Avalanche Module in the Module Manager

    Next, add the ava module to your application’s ModuleManager. Locate the section where you initialize the ModuleManager and include the Avalanche light-client:

    app.ModuleManager = module.NewManager(
      // other modules...
      ava.AppModuleBasic{},
    )

By following these steps, you'll successfully integrate the Avalanche light-client module into your Cosmos SDK application, enabling enhanced interoperability with Avalanche-based chains.

Higher than v0.50

Integrating the Avalanche Light-Client Module in Your Cosmos SDK Application

Enhance your Cosmos SDK application by integrating the light-clients/14-avalanche module. Follow this step-by-step guide to easily import and register the Avalanche light-client in your project.

  1. Import the Avalanche Light-Client Module

    First, ensure you import the Avalanche (ava) module into your Cosmos SDK application. Typically, this is done in the ibc.go file, where your application's modules are defined:

    import (
      // other imports...
      ava "github.com/cosmos/ibc-go/v8/modules/light-clients/14-avalanche"
    )
  2. Register the Avalanche Module in the Module Manager

    Add the ava module to your application’s ModuleManager. Locate the section where you initialize the ModuleManager and include the Avalanche light-client:

    app.ModuleManager = module.NewManager(
      // other modules...
      ava.AppModuleBasic{},
    )
  3. Add the Module to the RegisterIBC Function

    Finally, register the Avalanche module in the RegisterIBC function of your application. This function is typically found in the ibc.go file:

    func RegisterIBC(registry cdctypes.InterfaceRegistry) map[string]appmodule.AppModule {
        modules := map[string]appmodule.AppModule{
            // other modules...
            ava.ModuleName: ava.AppModuleBasic{},
        }
        ...
    }

By following these steps, you'll successfully integrate the Avalanche light-client module into your Cosmos SDK application, enabling enhanced interoperability with Avalanche-based chains.


For the complete list of light clients, refer to the following:


Official Landslide Documentation

For more detailed information on the Landslide network, refer to the Landslide Docs.


Ecosystem

Discover more applications and middleware in the cosmos/ibc-apps repository.

Community

We have active, helpful communities on Discord and Telegram.

For questions and support, please use the developers channel in the Cosmos Network Discord server or join the Interchain Discord server. The issue list of this repo is exclusively for bug reports and feature requests.

To receive announcements of new releases or other technical updates, please join the Telegram group that we administer.

We run biweekly community calls to update the community with our current direction and gather feedback on what to work on next. The community calls are also a platform for you to update everyone else with what you're working on, ask questions, and find opportunities to collaborate. Please join this Google group to receive a calendar invitation for the meeting.

Contributing

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

This project adheres to ibc-go's code of conduct. By participating, you are expected to uphold this code.

To help contributors understand which issues are good to pick up, we have the following two categories:

  • Issues with the label good first issue should be pretty well defined and are best suited for developers new to ibc-go.
  • Issues with the label help wanted are a bit more involved and they usually require some familiarity already with the codebase.

If you are interested in working on an issue, please comment on it; then we will be able to assign it to you. We will be happy to answer any questions you may have and help you out while you work on the issue.

Security

To report a security vulnerability, see our Coordinated Vulnerability Disclosure Policy.

Audits

The following audits have been performed on the ibc-go source code:


About

Inter-Blockchain Communication Protocol (IBC) implementation in Golang.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 95.1%
  • TLA 3.9%
  • Other 1.0%