Skip to content

OPEN Chain Cosmos Integration

Elaman Nazarkulov edited this page Jan 22, 2024 · 4 revisions

What is Cosmos?

Cosmos is a decentralized network of independent parallel blockchains, each powered by BFT consensus algorithms like Tendermint consensus.

Fig.1 - Cosmos Architecture

What is Tendermint?

Tendermint is open-source software for launching blockchains, allowing developers to build blockchain applications' networking and consensus layers in any language. Better yet, they can communicate with other blockchains using IBC.

Tendermint consists of two chief technical components: a blockchain consensus engine and a generic application interface. The consensus engine, called Tendermint Core, ensures that the same transactions are recorded on every machine in the same order. The application interface, called the Application BlockChain Interface (ABCI), enables the transactions to be processed in any programming language.

Tendermint with ABCI Fig.2 - Tendermint with ABCI

What is IBC?

The Inter-Blockchain Communication (IBC) protocol is a core feature of the Cosmos ecosystem, developed to facilitate communication, data transfer, and interoperability between independent blockchains. It is a general purpose message passing protocol, which means that any form of data can be sent and received using IBC.

ibcoverview

Fig.3 - IBC Overview

What is an IBC Relayer?

An IBC relayer is a software component that facilitates communication between two distinct blockchain networks that support the Inter-Blockchain Communication (IBC) protocol. The IBC protocol is a standard for the secure and reliable transfer of digital assets and data across different blockchain networks.

An IBC relayer is responsible for relaying IBC packets, which are used to send messages and data between two different blockchain networks. It receives packets from one chain, verifies their authenticity and validity, and then relays them to the receiving chain.

The following diagram shows how IBC works at a high level:

Already Implemented Relayers:

Open Chain Cosmos Integration Status

OPEN Chain is building on top of the Tendermint to enable Inter-Blockchain Communication (IBC) across chains.

Architecture

hubConnectionsCosmos

Integration commands

  1. Generate Tendermint proto in Open Chain
    ./gradlew clean build 
    
  2. Implement ABCIApplicationGrpc.ABCIApplicationImplBase()
  3. Run Open Chain
  4. Run Tendermint Core with proxy app
    tendermint node --consensus.create_empty_blocks=false --abci grpc --proxy_app tcp://{open_chain_host}:{grpc_port}
    
    As the result we have now running consensus and networking mechanism as Fig.2
  5. Run IBC-Go Relayer