陆羽跨链协议的架构如下,各组件为:
应用(SDK):应用通过SDK向跨链路由发送交易,操作跨链网络。交易被路由接收后转发至相应可信源。
账户服务(Account Manager):是一个独立的服务,由部署跨链路由的各方独立部署。该服务负责管理统一账户信息,维护一级账户与二级账户的对应关系,并用二级账户对交易进行签名。
跨链路由(Router):以插件化的方式实现与可信源对接。并作为可信源之间互联的媒介,负责其消息路由。
路由管理(Router Manager):路由内部的总逻辑模块,负责响应SDK消息、与账户服务交互,管理可信源插件和对跨链消息进行路由。
插件(Plugin):是配置在跨链路由内的与可信源对接的模块,实现与可信源的数据交互。基于相同的协议,不同类型的可信源有不同的实现。
(各模块的具体关系请参考《五、调用流程》章节)
协议分为四层
统一抽象协议包括四个协议,在可信源、账户服务、跨链路由和应用间定义统一的抽象协议。
将各种可信源的账户进行统一抽象,以实现用统一的账户操作不同可信源。本协议分为一级账户与二级账户
定义
将各种可信源的智能合约(链码)等可操作对象统一抽象为”资源“,以实现统一寻址
定义
{zone}.{chain}.{resource}
{zone}
业务名{chain}
链名{resource}
资源名{operation}
操作
将各种可信源的调用协议进行统一抽象,以实现用统一的接口与参数对资源进行调用
定义
写入资源
读取资源
查询记录
查询区块
列举资源
将各种可信源的接入协议进行抽象,以实现不同可信源的统一接入适配。不同可信源基于此协议开发插件,即可完成适配接入。本协议采用分层设计,以支持本地与远程的调用。
定义
驱动组件(Driver)
连接组件(Connection)
Connection(Remote)
” 实现远程调用。跨链互信是跨链的基础,本协议将跨链的验证操作内置于链插件中,由链插件根据区块链的设计进行实现。如图所示,当对方链上的交易上链后,原始的交易存在证明会直接透传至发起方的Driver,在Driver中以链本身的原始逻辑进行验证。该设计需在发起方的Driver处根据具体链类型事先配置相关验证数据,但从某种程度上简化了插件开发难度,对开发者友好。
sendTransaction操作经过层层处理,最后调用至区块链上。
流程见下图。需注意的是,区块头同步是异步的,在多个交易并发发送并被打包到一个区块中后,只需同步一次区块头即可。
sendTransaction操作经过层层处理,最后调用至另一个Router连接的区块链上。其中发起方Router的链路层的Connection是Remote的,该模块是Connection的抽象映射,负责转发至相应Router的Connection,接口与一般的Connection完全相同。
流程基本与单Router调用相同,区别在于多了远程的Connection模块,该模块是远端Connection的抽象映射,直接透传参数,不做任何处理。
由区块链的SDK发起,调用至区块链A上。区块链A上部署了接收跨链调用请求的合约,合约通过事件机制回调至插件,插件将调用参数和调用者的链身份以事件的形式通知至Router Manager。Router Manager从Account Manager处查询到对应链的私钥后,调用相应的插件将跨链交易发送出去。
流程如下:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。