Go 开源说第十期:BitXHub——区块链跨链协作平台
点击蓝字
关注我们
本文由“GO开源说”第十期 《BitXHub——区块链跨链协作平台》直播内容修改整理而成,视频内容较长,本文内容有所删减和重构。
当前的区块链应用和底层技术平台呈现出百花齐放的状态,但主流区块链应用中的每条链大多仍是一个独立的、垂直的封闭体系。在业务形式日益复杂的商业应用场景下,链与链之间缺乏统一的互联互通机制,这极大限制了区块链上数字资产价值的流动性,跨链需求由此而来。
BitXHub平台由中继链、应用链以及跨链网关三种角色组成,并链原生集成W3C标准的DID,依据场景导向可灵活组织部署架构,具有通用跨链传输协议、异构交易验证引擎、多层级路由三大核心功能特性,保证跨链交易过程的安全性、灵活性与可靠性。BitXHub于2020年3月份开源核心代码组件,希望与广大开发者携手共建万链互联生态。
项目开源地址:GitHub: https://github.com/meshplus/bitxhub
BitXHub系统架构
BitXHub的技术架构如下图,自下而上分为物理层、基础层、跨链服务层、接口层四个部分。
第一层是物理层,中继链的设计为了满足不同场景下用户物理环境需求,支持在普通物理机、云主机或者嵌入式设备上稳定运行,兼顾多场景适用性。
第二层是基础层,这一层包含了联盟链本身需要具备的模块,比如网络模块、存储模块、共识模块、虚拟机、隐私安全模块。
第三层是跨链相关的服务层,包括应用链管理模块、执行模块、事务管理模块、验证引擎模块和隐私保护模块,各模块互相协作完成中继跨链流程。
第四层是接口层,中继链对外提供gRPC和Restful两种接口服务,支持不同场景下用户的使用。
接下来为大家分享 BitXHub核心模块的工作原理,主要包括:跨链交易并行执行设计方案、如何使用GO插件机制适配多种共识算法以及BitXHub中的多模块化实践。
跨链交易并行处理
背景
首先区分这些交易中普通交易和跨链交易。
跨链交易分组
交易执行
在上述两个步骤中,能够得到多个分组,但是对于这些分组,并不能简单的全部并行执行。能够进行并行处理的部分是跨链交易的部分,普通交易还是无法并行执行。当交易列表中存在普通交易时,必须恢复到串行执行,碰到跨链交易的分组,可以按照发起链分成的细分组来并行处理。
共识算法插件模块
多模块选择加载
串行执行器和并行执行器都在init方法中调用agency中的register方法进行各自类型和构造方法的注册。当BitXHub启动时,所有包的init方法会先于main方法运行,这样两个执行器的类型和构造方法就被注册进agency模块了,当main函数运行时,BitXHub根据配置文件得到需要加载的执行器类型,并从agency模块中得到对应的构造函数,就可以构造出对应的执行器进行使用了。
更多区块链干货面对面交流,添加小助手18458407117加入技术交流群~
— 往期回顾 —
Go 开源说第七期:Harbor助你玩转云原生
Go 开源说第五期:MOSN Go语言网络代理软件
Go 开源说第四期(下):go-zero缓存管理最佳实践
⚠️ 各位Gopher们,注意啦!
别忘了还有 Gopher China2021 大会
还没报名的童鞋们赶快抓住最后的机会!!!