▼
有关更多令人兴奋的建议,请关注我们
▼
在先前版本的PlatON中,无论验证者是打包块还是验证块,都按顺序执行块中的事务,并且在计算MPT树的根(哈希)时,依次从根节点使用递归。 。树的根是以某种方式计算的,并且从算法级别进行的分析也属于“串行”计算根。
以上两个“串行计算”不能充分利用硬件多核的优势。实际上,在执行交易和计算根的过程中,可以并行执行没有“依赖关系”的计算步骤,然后将并行计算的结果汇总为最终结果。
在底层版本的PlatON 0.13.0中,事务并行和并行计算的实现通过有向无环图(DAG)技术实现。 DAG图是最复杂的数据结构,由一组顶点和一组可以连接两个顶点的边组成。根据测试,事务并行TPS优于事务串行TPS,整体性能提高了约30%。
交易并行
块中的事务按顺序打包,这要求相互依赖的事务必须保持与打包顺序相同的顺序,并且不相互依赖的事务实际上可以并行执行。您可以使用有向无环图来分析事务依赖性。
串行事务序列和并行事务DAG
技术术语
顶点:图中的一个点
边:连接两个顶点的线称为边。
度:从一个顶点开始,有多个边将顶点称为几度,或者说顶点的度为几度
路径:由边连接,一组顶点按顺序从一个顶点传递到另一个顶点
简单路径:没有重复顶点的路径
环:一条路径,至少包含一条边,并且起点和终点是相同的顶点
出度:从顶点开始的边总数
Indegree:指向顶点的边总数
根据原始交易清单的执行顺序,通过交易起始地址和接收地址,可以识别交易之间的依赖关系,并可以构建交易依赖的DAG图,入口度为0(没有前一个交易是取决于)事务可以并行执行。
并行计算根
通过深入了解MPT的数据结构,发现叶节点可以并行计算哈希,而MPT类似于DAG,可以将MPT转换为DAG进行并行计算。
假设插入了以下数据:
如下图所示,将生成MPT树。 MPT树可以生成相应的DAG图,入口为0的节点可以并行计算哈希。
性能比较
对于串行和并行版本,使用5000个帐户对25个验证节点(机器配置为4核8G)执行传输压力测试。性能数据如下:
并行版本的性能明显优于串行版本。 PlatON将继续改善性能指标,同时确保安全性和稳定性,并为用户提供更好的服务质量。
了解有关PlatON的更多信息
PlatON·GitHub
https://github.com/PlatONnetwork
平台·论坛
https://forum.latticex.foundation/c/PlatON-CN
平台·电报
https://t.me/PlatONNetworkCN
推特
https://twitter.com/PlatON_Network
平台·关联
https://linkedin.com/company/platonnetwork
戳阅读原文并访问PlatON网站!
文章标题:[Hardcore Science] PlatON并行计算技术的实现
文章链接:https://www.btchangqing.cn/53685.html
更新时间:2023年04月06日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。