Categorygithub.com/icon-project/btp
module
0.0.0-20230307085542-82e463e69797
Repository: https://github.com/icon-project/btp.git
Documentation: pkg.go.dev

# README

Note The ongoing development of this project has migrated to btp2 and other repositories (btp2-java, btp2-solidity). Please use those repositories instead of this repository.

BTP (Block Transmission Protocol) Relay System

Introduction

We need to build a usable BTP Relay System which can deliver digital tokens between multiple chains.

Target chains

  • ICON (goloop)
  • Polkadot parachain

Terminologies

WordDescription
BTPBlockchain Transmission Protocol, ICON BTP Standard defined by ICON.
BTP MessageA verified message which is delivered by the relay
Service MessageA payload in a BTP message
Relay MessageA message including BTPMessages with proofs for that, and other block update messages.
NetworkAddressNetwork Type and Network ID
0x1.icon
ContractAddressAddressing contract in the network
btp://0x1.icon/cx87ed9048b594b95199f326fc76e76a9d33dd665b

BTP Standard

Components

  • BTP Message Verifier(BMV) - smart contract

    • Update blockchain verification information
    • Verify delivered BTP message and decode it
  • BTP Message Center(BMC) - smart contract

    • Receive BTP messages through transactions.
    • Send BTP messages through events.
  • 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

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

Blockchain specifics

BTP Project

Documents

Layout

DirectoryDescription
/cmdRoot of implement of BMR
/cmd/btpsimpleReference implement of BMR. only provide unidirectional relay. (golang)
/cmd/btpsimple/chainImplement of common logic of BMR, use module
/cmd/btpsimple/moduleBMR module interface and common codes
/cmd/btpsimple/module/<chain>Implement of BMR module (Sender,Receiver), <chain> is name of blockchain
/commonCommon codes (golang)
/docDocuments
/dockerDocker related resources
/<env>Root of implement of BTP smart contracts, <env> is name of smart contract execution environment
/<env>/bmcImplement of BMC smart contract
/<env>/bmvRoot of implement of BMV smart contract
/<env>/bmv/<src>Implement of BMV smart contract, <src> is name of source blockchain
/<env>/libLibrary for execution environment
/<env>/<svc>Root of implement of BSH smart contract, <svc> is name of BTP service

BTP implement for ICON blockchain

BMR module

DirectoryDescription
/cmd/btpsimple/module/iconBMR module for ICON blockchain

Python SCORE of ICON

DirectoryDescription
/pyscoreImplement of BTP smart contracts for Python SCORE of ICON blockchain
/pyscore/bmcImplement of BMC smart contract
/pyscore/bmv/iconImplement of BMV smart contract for ICON blockchain
/pyscore/libBTP interface and common codes for Python SCORE
/pyscore/lib/iconICON related common codes
/pyscore/token_bshReference implement of BSH smart contract for Interchain-Token transfer service
/pyscore/token_bsh/sample/irc2_tokenImplement of IRC-2.0 smart contract, example for support legacy smart contract

Java SCORE of ICON

DirectoryDescription
/javascoreImplement of BTP smart contracts for Java SCORE of ICON blockchain
/javascore/bmcImplement of BMC smart contract
/javascore/bmv/iconImplement of BMV smart contract for ICON blockchain
/javascore/libBTP interface and common codes for Python SCORE

# Packages

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