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
-
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
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 |
Directory | Description |
---|---|
/cmd/btpsimple/module/icon | BMR module for ICON blockchain |
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 |
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 |