We need to build a usable centralized bridge for BTP Relay System which can deliver digital tokens between multiple chains.
Target chains
- ICON (goloop)
- Polkadot parachain
- Binance Smart Chain
- Harmony One
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 0x1.icon |
ContractAddress | Addressing contract in the network btp://0x1.icon/cx87ed9048b594b95199f326fc76e76a9d33dd665b |
BTP Standard
-
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
- Send BTP Relay Message
Directory | Description |
---|---|
/cmd | Root of implement of BMR |
/cmd/iconbridge | Reference implement of BMR. only provide unidirectional relay. (golang) |
/cmd/iconbridge/relay | Implement of common logic of BMR, uses chain package |
/cmd/iconbridge/chain | BMR module interface, common code, and chain specific packages |
/cmd/iconbridge/chain/<blockchain> |
Implement of BMR module (Sender ,Receiver ), <blockchain> is name of blockchain |
/common | Common code (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> /lib |
Library for execution environment |
/<env> /<svc> |
Root of implement of BSH smart contract, <svc> is name of BTP service |
/<env> /token_bsh |
Reference implement of BSH smart contract for Interchain-Token transfer service |
/<env> /token_bsh/sample/irc2_token |
Implement of IRC-2.0 smart contract, example for support legacy smart contract |
Directory | Description |
---|---|
/cmd/iconbridge/module/icon | BMR module for ICON blockchain |
/cmd/iconbridge/module/hmny | BMR module for Harmony blockchain |