关于区块链:OpenAtom-XuperChainV52版本抢先看性能稳定性全面升级

10次阅读

共计 1918 个字符,预计需要花费 5 分钟才能阅读完成。

通过几个月的致力奋战,赶在新年到来之际,咱们也行将迎来 OpenAtom-XuperChainV5.2 版本啦(撒花)!全新版本将于近期上线,明天小编就带大家领先看看 V5.2 版本都有哪些性能的优化降级。

本次 V5.2 版本在 OpenAtom XuperChain 的性能稳定性上做出了大幅晋升,在性能方面,除了在共识及 merkle 算法局部做了优化,此次版本也同时反对了 arm 架构。

次要包含:

【性能稳定性】升高内存以及 CPU 的应用;
【账本】减少未确认交易池
【区块同步】优化区块同步计划
【共识】晋升共识稳定性以及正确性
【架构】反对 arm 架构
【log】晋升日志写入速度

OpenAtom XuperChain 性能稳定性降级

本次降级,从多个方面针对交易的性能以及稳定性进行优化:

区块同步计划优化

在节点间同步区块时,将被动接管区块改为被动拉取区块的形式,同步区块从逆序同步改为程序同步(高度从低到高),最大化利用网络带宽,晋升了同步效率。

账本状态机优化

在账本、状态机层面,欠缺了未确认交易池,在向链上提交交易时,会依据交易的依赖关系进行拓扑排序,因而在 mempool 中的交易以 DAG 图模式存在,在区块打包时能够从根节点开始遍历打包交易,晋升打包速度,在执行区块时,能够间接找到相干抵触交易,晋升了区块打包以及区块执行的速度。

想理解 OpenAtom XuperChain 更多账本状态机详情?请点击:
https://xuper.baidu.com/n/xup…

共识降级

在共识层面将 QCTree 回滚的逻辑变更以及减少 mutex、kernel 和 bcs 层,别离依照不同粒度锁解决脏写问题,晋升共识稳定性与正确性,减少矿工收集签名的时延保障旷工打包的工夫失去保障。

还不理解 OpenAtom XuperChain 共识算法?点击下方链接理解更多:
https://xuper.baidu.com/n/xup…
https://xuper.baidu.com/n/xup…

通过以上三方面对交易的性能以及稳定性进行优化,转账类交易内存应用整体升高了 33% 左右,CPU 应用整体升高了 50%;合约类交易内存应用整体升高了 50% 左右,CPU 应用整体升高了 30%,性能大幅晋升。

性能优化

本次全新版本下,OpenAtom Xuperchain 以及 crypto 仓库现 已反对 arm 架构

在日志方面,原有的日志库间接应用 os.File.Write 来写入每一条日志,零碎调用开销比拟大,同时,日志的格式化在锁内,并发写入日志时耗时比拟大。通过优化后,应用 bufio.Writer 来写入日志,从而缩小了零碎调用的次数,晋升了日志写入效率。除此之外,也实现了在锁外格式化日志,在锁内写入日志 buffer,大大降低并发写入日志耗时。

在共识层面,本次新版本中,Chained-BFT 反对候选人组数量为 1,确保单个候选人仍能依照 QCTree 流程执行。

在算法层面,通过优化后,能够大幅缩小 merkle 算法的内存调配。通常状况下,提交交易会减少内存调配次数,内存调配次要在 sha256 的生成上,每个 double sha256 都要进行 2 次调配,然而随着单个区块中交易数量的增多,生成默克尔树时就会比拟耗时。

在 OpenAtom XuperChainV5.2 版本中,应用了 arena 调配算法,通过“一次申请,独自调配“的形式,一次性申请够所有的内存,再在每次计算 sha256 的时候独自调配, 另外,应用了零调配的 sha256 函数来辅助计算 sha256,大大减少了内存调配次数。通过测试,对于一个 10000 个交易的区块,内存调配次数从 30017 降到了 5。

Bug 修复

OpenAtom XuperChainV5.2 版本针对 xchain-cli 以及共识、cache 等中央进行了 bug 修复。包含:

xchain-cli

  • 修复了 xchain-cli 中 merge 命令会失败问题,目前已反对 utxo 的 merge 以及 split;
  • 修复了裁剪账本命令裁剪失败以及程序再启动失败问题;
  • 修复指定链名性能不可用问题;
  • 修复提案高度相干 bug。

XuperCore

  • 修复 utxo cache 配置数值较小时区块交易执行失败问题;
  • 修复状态机 walk 时验证 timer 合约可能失败的 bug;
  • 修复 poa 和 pos 类合约共识配置 init_proposer 为空可能导致程序退出的 bug;
  • 修复从新加载平行链时可能导致程序退出的 bug;
  • 修复共识降级时节点不出块问题,V5.2 版本在此性能上稳定性晋升至 99% 以上。

以上便是本次版本升级的全部内容,你对 OpenAtom XuperChainV5.2 有哪些倡议和心得体会?欢送分割小助手(XuperChain-Help)退出超级链官网微信群交换。

正文完
 0