Skip to content

naneey/btp2

 
 

Repository files navigation

Relay System for BTP 2.0

Introduction

This is a reference relay implementation for BTP 2.0 protocol.

Target chains

  • ICON (BTP Block)
  • Hardhat (EVM-compatible chain)

Terminologies

Word Description
BTP Blockchain Transmission Protocol, see ICON BTP Standard.
BTP Message A verified message which is delivered by the relay
Service Message A payload in a BTP Message
Relay Message A message including BTP Messages with proofs for that, and other block update messages.
Network Address A string to identify blockchain network
ex) 0x1.icon
BTP Address A string of URL for locating an account of the blockchain network
ex) btp://0x1.icon/cx87ed9048b594b95199f326fc76e76a9d33dd665b

Components

  • BTP Message Center (BMC) - smart contract

    • Receive BTP messages through transactions.
    • Send BTP messages through events.
  • BTP Message Verifier (BMV) - smart contract

    • Update blockchain verification information
    • Verify delivered BTP message and decode it
  • BTP Service Handler (BSH) - smart contract

    • Handle service messages related to the service.
    • Send service messages through the BMC
  • BTP Message Relay (BMR) - external software (implemented by this repository)

    • Monitor BTP events
    • Gather proofs for the events
    • Send BTP Relay Message

Getting Started

  1. git clone https://github.com/icon-project/btp2.git --recurse-submodules
  2. cd btp2
  3. make relay

E2E Testing Demo

Repository Structure

repository structure

References

About

Relay System for BTP 2.0

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 85.2%
  • TypeScript 12.3%
  • Makefile 0.9%
  • Shell 0.8%
  • Solidity 0.7%
  • Dockerfile 0.1%