区块链BaaS云服务(22)趣链BitXHub“跨链网关”
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链BaaS云服务(22)趣链BitXHub“跨链网关”相关的知识,希望对你有一定的参考价值。
1. 定义
一个对接具体类型区块链以及转发跨链消息的重要组成部分。它主要提供了应用链适配、跨链交易监听、跨链交易执行、跨链交易路由等核心功能。
1.1 两种模式
-
中继模式
通过中继链来进行跨链操作,比较适合较多区块链进行跨链互操作的场景。 -
直连模式
能够直接连接到其他跨链网关,进行跨链交易的传递,比较适合链对链的小型跨链系统。
1.2 应用链层
该层负责和应用链及其智能合约进行交互逻辑,为上层的交互提供统一的交互接口。由于区块链的架构因链而异,为了让应用链适配和跨链网关能够解耦,达到便捷接入的效果,我们采用了插件机制。
1.3 交互层
包含了如何提交IBTP包以及如何监听应用链上的跨链交易等具体逻辑。
- 交互层处于跨链网关中的底层,包括执行模块和监听模块。
- 交互层向上层模块屏蔽了跨链交易从应用链获取和提交的细节,提供了更精简的交互接口。
1.4 中继层
该层作为跨链网关中消息流转的中转调度层,从应用链上来的跨链消息和从其他区块链接收的跨链消息都统一通过该层进行相应的处理和路由。中继层主要能够屏蔽不同跨链模式下的复杂性,统一调用底层的模块。
2. 插件机制
为简化不同区块链的适配问题,让所有具体在应用链上进行操作的部分全部封装到应用链插件中,并按照跨链网关和应用链交互的需求确定了一套适合跨链交互的插件接口。 (跨链网关主要是负责与中继链或者其他跨链网关的交互和通信)
2.1 提交交易接口
跨链网关提交IBTP包的接口。跨链网关和应用链插件交互的基础是IBTP:跨链网关向插件提交的IBTP包,得到的回执信息也是IBTP包。这样插件向跨链网关屏蔽了不同区块链交易结构不一致的复杂性,简化了跨链网关的设计。
应用链插件负责解析IBTP包,并转换为适配应用链提交交易的结构。同时也要对于得到的执行结果进行封装,同时从应用链获取对于改跨链交易的Proof信息。
2.2 查询跨链交易元信息接口
IBTP协议层面,协议能够感知的最小粒度是应用链。协议只能让跨链交易转发到IBTP包中目的链ID所对应的跨链网关。对于更细粒度的链上合约和用户账号地址等,在应用层中对IBTP的payload字段中自行解析和定义业务结构。
所以跨链合约需要记录的是自身应用链与其他链的最新交易序号信息(即为跨链交易的元信息),并且在执行跨链交易时更新这些元信息。因为这些元信息对于跨链网关重启恢复来说至关重要,所以插件需要提供一个能够查询这些元信息的接口。
2.3 查询历史交易信息
对于应用链抛出的跨链事件,可能会因为网络抖动或者跨链网关宕机等不可控原因,导致部分跨链事件没有及时收到。这种情况下,插件需要提供查询遗漏的跨链事件的接口,用于跨链网关恢复跨链网关处理跨链事件的顺序。
2.4.查询应用链基础信息
跨链网关对于使用应用链插件是无感知的,所以如果如果跨链网关需要获取应用链的基础信息(如应用链类型,共识算法类型,应用链名称等)时,需要向应用链插件查询。
以上是关于区块链BaaS云服务(22)趣链BitXHub“跨链网关”的主要内容,如果未能解决你的问题,请参考以下文章