艾巴生活网

您现在的位置是:主页>科技 >内容

科技

百度自主研发的区块链系统XuperChain介绍

2023-08-07 12:17:02科技帅气的蚂蚁
背景百度XuperChain于2019年5月底正式宣布开源。开源之后,它迅速获得了开发者和区块链媒体的广泛关注。XuperChain是百度自主研发的区块链

百度自主研发的区块链系统XuperChain介绍

背景

百度XuperChain于2019年5月底正式宣布开源。开源之后,它迅速获得了开发者和区块链媒体的广泛关注。XuperChain是百度自主研发的区块链系统。开放给Github后还在积极升级代码,已经发布了两个版本,V3。1、V3.2. 10%的代码由外部开发者贡献。

目前,国内外有许多区块链系统。对于区块链开发商来说,如何选择一个区块链体系进行持续耕耘是一个难题。在项目选择的过程中需要考虑的问题有很多,比如功能是否齐全,性能是否满足业务压力,开发过程中遇到的问题能否得到有效的支持。目前,百度Hyperchain已经通过了工信部电子所的标准测试,在功能、安全、性能等方面都远超同类产品。Hyperlink还建立了活跃的开发者微信群,越来越多的开发者在学习Hyperlink,用Hyperlink落地自己的项目。

本文将对百度超链接的架构体系进行阐述,并对其独特的关键技术进行简要分析,让读者大致了解超链接为什么能够实现高性能,如何实现可插拔架构等。我们还会推出一系列文章来讲解各种知识点。

系统结构

一般来说,区块链系统有三个主要组成部分:分布式账簿、合同引擎和共识处理器。

分布式账本解决了数据存储的问题,比如如何将数据持久化到存储介质上,如何组织数据,如何检查、更新、查询数据。

契约引擎解决的是计算问题,可以从账本加载数据和契约字节码到虚拟机,运行后再将生成的数据变化写入账本。

一致性处理器解决了一致性问题,因为区块链是P2P网络集群,传输存在延迟、不稳定、节点邪恶等因素。最后需要一致性处理器保证:集群中所有节点存储的数据一致,计算结果一致。

在hyperlink的架构设计中,这三个组件是可插拔的。

在契约引擎中,通过抽象的虚拟机接口设计,可以集成各种丰富的虚拟机,比如XVM、Wavm、SolidityVM(非开源)等等。

在分布式账本中,我们设计了一个高并发的事务管理模型XuperModel,通过抽象的键值接口设计,可以集成各种底层存储引擎,如Leveldb、Baddger、Rocksdb等。只要实现了Put、Get、Iterator等接口,就可以集成第三方存储引擎了。

在一致性处理器中,通过抽象的一致性接口设计,可以集成各种丰富的一致性算法。有两个共识算法,TDPos和Pow,已经在超链中开源。开发者可以开发自己的共识算法,并根据自己的需求进行整合。

高性能关键技术

超链接的性能优化主要从两个方面入手,一是立体网络,二是链内并行。

立体网络,简单来说就是从一个根链衍生出n个并行链,按照业务划分,让交易完全并行。在某些情况下,需要通过根链的哈希锚定来跨链。另外还有回归侧链技术,动态生成fork的侧链,经过一段时间的计算和运算后释放。三维网络技术暂时不开源。

链内并行是指单链情况下的性能优化技术。提高单链性能主要有两个方面:加快阻塞的速度和稳定性,以及事务验证的完全并行化。

一方面,超链接采用TDPOS共识,优化了组块时间片的调度机制,能够稳定快速的组块。另一方面,Hyperchain采用了独特的XuperModel模型,使得事务的验证完全并行。该模型由经典的UTXO模型发展而来,将智能合约的执行分为预执行阶段和提交阶段两个不同的阶段,通过类似MVCC的机制避免整体锁定。不同于一般的读写集合机制,超链接中事务的读写集合引用不需要绑定到块高,未确认事务的输出也可以被引用,进一步提高了性能测试的整体吞吐量。

此外,在工程实现上也做了大量的优化。比如底层KV存储支持多磁盘存储避免IO瓶颈,通过内存缓存减少磁盘访问开销,通过线程规避机制保证及时的块弹出。

社区建设

超链接的代码在https://github.com/xuperchain,是开源的,目前每周的开发进度将同步到社区。也欢迎大家提交代码,在Github上给出发布和拉取请求的发起模板。到目前为止,外部开发人员提交的提交数量占10%。我们社区建设的目标是逐步提高这个比例,让超级链真正成为一个开放的、共建的生态。

为了方便及时反馈和解答问题,我们还建立了微信群(见文末),值班工程师将24小时为开发者服务。

后续计划

未来,超级链接将进一步提高其性能和易用性,并努力提高其在区块链开发者中的影响力。另外,我们都知道,XuperChain只是超级链“Xuper”系列产品中的一员,未来我们还将开放边缘计算、大数据、多方安全计算的一体化解决方案,敬请期待。