BitXHub中继链

一、BitXHub中继链的技术架构

BitXHub中继链_第1张图片

BitXHub中继链的技术架构自下而上分为物理层、基础层、跨链服务层、接口层四个部分 。

第一层是物理层,中继链的设计为了满足不同场景下用户物理环境需求,支持在普通物理机、云主机或者嵌入式设备上稳定运行,兼顾多场景适用性。

第二层是基础层,这一层包含了联盟链本身需要具备的模块,比如网络模块、存储模块、共识模块、虚拟机、隐私安全模块。

  • P2P网络是节点之间共识和信息传递的通道,是平台的网络通信基础。目前平台采用Libp2p网络库,支持TCP和QUIC等不同的传输协议,满足不同网络条件下的稳定通信。
  • 根据数据类型的不同,平台设计了符合相应类型的存储模式。用于保证数据操作的原子性和持久性,平台选用WAL(Write Ahead Log) 预写日志;针对随机性较强的Key/Value类型的区块链状态数据,平台选用高性能存储引擎LevelDB。
  • 虚拟机模块整合了能够完成复杂逻辑验证的Webassembly虚拟机,对跨链交易进行验证。
  • 采用可插拔的加密机制,对于业务完整生命周期所涉及的数据、通信传输、物理连接等方面都进行了不同策略的加密,通过多级加密保证平台数据的安全,而且完全支持国密算法。

第三层是跨链服务层,包括应用链管理模块、执行模块、事务管理模块、验证引擎模块和隐私保护模块,各模块互相协作完成中继跨链流程。

  • 链管理模块主要负责应用链注册、审核和冻结等操作;
  • 执行模块负责跨链交易的检查、处理和验证工作;
  • 事务管理模块负责跨链交易在整个系统处理的一致性;
  • 验证引擎模块在Webassembly虚拟机之上实现了跨链交易存在性和有效性的验证逻辑;
  • 隐私保护模块提供对于跨链数据本身的隐私保护功能。

第四层是接口层,中继链对外提供gRPC和Restful两种接口服务,支持不同场景下用户的使用。同时,为了能够支持异构区块链之间的跨链交易路由和可信验证,BitXHub设计了通用的跨链传输协议IBTP(InterBlockchain Transfer Protocol),允许异构资产、数据及服务进行跨链调用。

二、中继链模块及流程

BitXHub中继链_第2张图片

1. 跨链网关A将跨链交易提交给中继链。

2. 中继链接口层的GRPC和Restful接口接收到该跨链交易,并将其提交给核心接口。

3. 核心接口接收到跨链交易之后,对跨链交易里的某些参数进行校验,并对交易的签名进行验证。核心接口验证完成之后,将跨链交易提交给共识模块。

4.  共识模块将交易提交给交易池,交易池通过网络模块将跨链交易广播给其他节点。

5. 交易池通过定时出块、定时打包、排序的方式,将区块返回给共识模块。

6. 共识模块通过RAFT或其他共识的若干个阶段,将区块进行出块。共识模块采用的是插件机制,这是GO语言的一个特性:通过加载 .so 文件的动态链接库,来加载RAFT或其他共识。

7. 共识模块出完区块之后,如果区块里面包含跨链交易,则将其提交给执行模块。

8. 执行模块的验证规则管理合约获取来源链的验证规则。验证规则是一套代码逻辑,用于验证跨链交易的有效性。

9. 执行模块的跨链处理内置合约,根据验证规则管理合约获取到的验证规则,来验证规则验证跨链交易的有效性,并对跨链交易进行处理。

10. 验证通过之后,由存储模块对区块进行落盘,即对区块进行存储。

11. 跨链交易通过路由模块,同步给跨链网关B和跨链网关C,也就是目的链。

三、概念补充

1. 交易:

交易,本质上就是就是状态改变函数的一个输入(input)。

你可能感兴趣的:(架构,区块链)