Skip to content

hir0min/btp

This branch is 402 commits behind icon-project/btp:btp2.

Folders and files

NameName
Last commit message
Last commit date
Jul 2, 2021
Jul 2, 2021
Dec 3, 2021
May 24, 2022
Jul 2, 2021
May 16, 2022
Nov 10, 2021
Dec 3, 2021
Oct 27, 2020
May 16, 2022
Jul 2, 2021
Oct 26, 2020
Oct 26, 2020

Repository files navigation

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

Word Description
BTP Blockchain Transmission Protocol, ICON BTP Standard defined by ICON.
BTP Message A verified message which is delivered by the relay
Service Message A payload in a BTP message
Relay Message A message including BTPMessages with proofs for that, and other block update messages.
NetworkAddress Network Type and Network ID
0x1.icon
ContractAddress Addressing 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

Directory Description
/cmd Root of implement of BMR
/cmd/btpsimple Reference implement of BMR. only provide unidirectional relay. (golang)
/cmd/btpsimple/chain Implement of common logic of BMR, use module
/cmd/btpsimple/module BMR module interface and common codes
/cmd/btpsimple/module/<chain> Implement of BMR module (Sender,Receiver), <chain> is name of blockchain
/common Common codes (golang)
/doc Documents
/docker Docker related resources
/<env> Root of implement of BTP smart contracts, <env> is name of smart contract execution environment
/<env>/bmc Implement of BMC smart contract
/<env>/bmv Root of implement of BMV smart contract
/<env>/bmv/<src> Implement of BMV smart contract, <src> is name of source blockchain
/<env>/lib Library 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

Directory Description
/cmd/btpsimple/module/icon BMR module for ICON blockchain

Python SCORE of ICON

Directory Description
/pyscore Implement of BTP smart contracts for Python SCORE of ICON blockchain
/pyscore/bmc Implement of BMC smart contract
/pyscore/bmv/icon Implement of BMV smart contract for ICON blockchain
/pyscore/lib BTP interface and common codes for Python SCORE
/pyscore/lib/icon ICON related common codes
/pyscore/token_bsh Reference implement of BSH smart contract for Interchain-Token transfer service
/pyscore/token_bsh/sample/irc2_token Implement of IRC-2.0 smart contract, example for support legacy smart contract

Java SCORE of ICON

Directory Description
/javascore Implement of BTP smart contracts for Java SCORE of ICON blockchain
/javascore/bmc Implement of BMC smart contract
/javascore/bmv/icon Implement of BMV smart contract for ICON blockchain
/javascore/lib BTP interface and common codes for Python SCORE

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 61.4%
  • Go 20.7%
  • Python 14.2%
  • Shell 3.0%
  • Other 0.7%