百度自主研发的区块链系统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”系列产品中的一员,未来我们还将开放边缘计算、大数据、多方安全计算的一体化解决方案,敬请期待。
推荐阅读
- 如何涂指甲油,怎样涂指甲油干得快
- 纪念碑谷艾达的梦攻略第四关,纪念碑谷艾达的梦攻略
- udk虚幻4引擎(游戏开发包工具)软件介绍(udk虚幻4引擎(游戏开发包工具))
- OG梅奥为什么离开nba Pubmed GIST文献月评第十九期(Jun 2018)
- 12306用户名和密码忘记怎么找回账号,12306用户名和密码忘记怎么找回
- 哈尔滨市极乐寺简介
- 二人麻将打法技巧,迅速如何掌握二人麻将技巧
- 故宫门票多少钱一张2021,故宫门票多少钱
- 如何删除微信中的表情包,微信如何删除自己保存的表情
- dnf已经有红字的怎么把红字洗掉,dnf已经洗出红字的装备怎么洗掉
- 海蛏子的家常做法,海蛏子的做法大全
- 微信聊天记录怎么恢复吗,微信聊天记录怎么恢复方法:
- qq飞车帧数如何能锁,QQ飞车帧数如何修改
- 1盎司相当于多少克黄金,盎司等于多少克及一盎司黄金等于多少克
- 怎么恢复路由器出厂,怎样恢复路由器出厂设置
- 触手tvlogo怎么买,如何录制触手TV文章
- 藏语常用问候语及礼貌语 旅行必备
- 腾讯文章的会员怎么取消自动续费,腾讯文章VIP会员怎么取消自动续费设置
- 支付宝绑定银行卡与银行预留手机号不符,支付宝绑定银行卡提示与预留手机号码不一致
- 如何饲养土狗,饲养土狗的实用方法