Git Product home page Git Product logo

btp's Introduction

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

btp's People

Contributors

dependabot[bot] avatar inwonkim avatar jspark-icon avatar kornery avatar kwon528 avatar sink772 avatar twixcandy avatar yakkle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.