Categorygithub.com/icon-project/btp2
repository
1.0.9
Repository: https://github.com/icon-project/btp2.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# README

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

WordDescription
BTPBlockchain Transmission Protocol, see ICON BTP Standard.
BTP MessageA verified message which is delivered by the relay
Service MessageA payload in a BTP Message
Relay MessageA message including BTP Messages with proofs for that, and other block update messages.
Network AddressA string to identify blockchain network
ex) 0x1.icon
BTP AddressA 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