10.2 基于Poly Enterprise的跨链
10.2.1 概述
一个完整的跨链交易交互需要编写多条链的应用合约,比如在以太坊网络上有一个应用合约,在BSN服务网络上有一个FISCO应用合约,二者通过跨链协议保证互通信息的正确性进行跨链交互。跨链合约包含管理合约和应用合约:管理合约是跨链核心协议的实现内容,由BSN开发团队开发并部署在每条链上;应用合约需要区块链应用开发者依据跨链协议实现并部署在区块链网络中。
管理合约包括如下合约实现:
1. ETH和FISCO
- EthCrossChainManager:包含管理的逻辑
- EthCrossChainData:用于保存并操作数据
- EthCrossChainManagerProxy:用于实现逻辑合约的升级
2. NEO
- CCMC:包含管理的逻辑
3. Fabric
- CCM:包含管理的逻辑
4. 测试网跨链管理合约地址
下面是基于Poly Enterprise的跨链服务所部署的框架名称,链ID以及跨链合约名称或地址。
- 跨链管理合约:
测试网 | 框架名称 | 链ID | 跨链管理合约 |
---|---|---|---|
中国 | Fabric | 88 | ccm |
中国 | FISCO BCOS | 98 | 0x8f866dE652d34308De82E7DaF504D1af4B4b05E9 |
国际 | Fabric | 89 | ccm |
国际 | FISCO BCOS | 99 | 0xaF92fAe702C24CF5B214645AdFE25821b5664667 |
Ropsten | Ethereum | 2 | 0xBeB102965dcA6a9Cc37f013343E867191558C922 |
Testnet | Neo | 4 | 0x10b6edbb6e44188d0ff39065442081b13bbd109b |
- 应用演示合约:
测试网 | 框架名称 | 链ID | 应用演示合约 |
---|---|---|---|
中国 | Fabric | 88 | myhellopoly |
中国 | FISCO BCOS | 98 | 0x2e98f68147887288f1eb2ebd065ccc46be9bc4f9 |
国际 | Fabric | 89 | myhellopoly |
国际 | FISCO BCOS | 99 | 0xd8e0013aa9b41bb946aee1a848b5665c17951200 |
Ropsten | Ethereum | 2 | 0x7210c828d9455C5319f50d206C9EdD603CE1F999 |
Testnet | Neo | 4 | 0x73090f73056cfc40895799c2a061da7904d8b53d |
应用跨链包含如下功能:
Outbound是由发起跨链交易请求的源链应用合约实现,将交易请求信息从源链应用合约发送到目标链应用合约。用户可以调用源链应用合约中自行定义的某个方法,该方法需要实现调用跨链管理合约的crossChain方法,跨链管理合约会通过事件把跨链信息发送到目标链;
Inbound是由接收跨链交易请求的目标链应用合约实现,将从源链发来的交易请求信息传进目标链应用合约。跨链管理合约会接收并验证接收到的跨链信息,跨链协议要求在跨链信息里面包含目标链应用合约和函数名,然后管理合约会调用指定合约地址的指定方法,并把指定的信息传递给目标链应用合约。