技术架构¶
BitXHub中继链的技术架构自下而上分为物理层、基础层、跨链服务层、接口层四个部分。
第一层是物理层,中继链的设计为了满足不同场景下用户物理环境需求,支持在普通物理机、云主机或者嵌入式设备上稳定运行,兼顾多场景适用性。
第二层是基础层,这一层包含了联盟链本身需要具备的模块,比如网络模块、存储模块、共识模块、虚拟机、隐私安全模块。
- P2P网络是节点之间共识和信息传递的通道,是平台的网络通信基础。目前平台采用Libp2p网络库,支持TCP和QUIC等不同的传输协议,满足不同网络条件下的稳定通信。
- 根据数据类型的不同,平台设计了符合相应类型的存储模式。用于保证数据操作的原子性和持久性,平台选用WAL(Write Ahead Log) 预写日志;针对随机性较强的Key/Value类型的区块链状态数据,平台选用高性能存储引擎LevelDB。
- 虚拟机模块整合了能够完成复杂逻辑验证的Webassembly虚拟机,对跨链交易进行验证。
- 采用可插拔的加密机制,对于业务完整生命周期所涉及的数据、通信传输、物理连接等方面都进行了不同策略的加密,通过多级加密保证平台数据的安全,而且完全支持国密算法。
第三层是跨链相关的服务层,包括应用链管理模块、执行模块、事务管理模块、验证引擎模块和隐私保护模块,各模块互相协作完成中继跨链流程。
- 链管理模块主要负责应用链注册、审核和冻结等操作;
- 执行模块负责跨链交易的检查、处理和验证工作;
- 事务管理模块负责跨链交易在整个系统处理的一致性;
- 验证引擎模块在Webassembly虚拟机之上实现了跨链交易存在性和有效性的验证逻辑;
- 隐私保护模块提供对于跨链数据本身的隐私保护功能。
第四层是接口层,中继链对外提供gRPC和Restful两种接口服务,支持不同场景下用户的使用。同时,为了能够支持异构区块链之间的跨链交易路由和可信验证,BitXHub设计了通用的跨链传输协议IBTP(InterBlockchain Transfer Protocol),允许异构资产、数据及服务进行跨链调用。