PlatON并行计算技术实现

2020-07-12 15:14 栏目:经验之谈 来源:网络整理 查看()

在柏拉图的早期版本中,块中的事务由验证器以串行模式执行,无论它们是打包块还是验证块。在计算MPT树的根(散列)时,从根节点开始依次递归计算根,从算法层面的分析也属于根的“串行”计算。

以上两种“串行计算”不能充分利用硬件多核的优势。实际上,在执行事务和计算根的过程中,可以并行执行没有“依赖性”的计算步骤,然后将并行计算的结果汇总成最终结果。

在柏拉图0.13.0的底层版本中,事务并行和并行计算根是通过有向无环图技术实现的。DAG图是最复杂的数据结构之一,它由一组顶点和一组连接两个顶点的边组成。测试表明,事务并行TPS优于事务串行版本,整体性能提高了30%左右。

事务并行性

块中的事务是按顺序打包的,这要求相互依赖的事务应该保持与打包顺序相同的顺序,而相互不依赖的事务实际上可以并行执行。我们可以使用有向无环图来分析事务的依赖性。

PlatON并行计算技术实现

技术术语

顶点:图形中的一点

边:连接两个顶点的线段称为边

度数:从一个顶点开始,如果有几条边,它被称为顶点有多少度,或者顶点的度数是多少,度数

路径:由边连接的一组顶点,按顺序从一个顶点到另一个顶点

简单路径:没有重复顶点的路径

环:至少包含一条边的路径,其起点和终点是同一个顶点

范围:从顶点开始的边的总数

穿透:指向顶点的边的总数

根据原始事务列表的执行顺序,可以通过事务的发起地址和接收地址来识别事务之间的依赖关系,并构建事务的依赖DAG图。所有内部度为0的事务(没有相关的先行事务)都可以并行执行。

并行计算根

通过深入了解MPT的数据结构,发现叶节点可以并行计算哈希,而MPT就像DAG一样,所以MPT可以转换成DAG进行并行计算。

假设插入了以下数据:

PlatON并行计算技术实现

生成MPT树,如下图所示。MPT树可以生成相应的DAG图,度为0的节点可以并行计算哈希。

PlatON并行计算技术实现

性能比较

对于串行和并行版本,25个认证节点(机器配置4核8G)分别进行了5000个账户的转移压力测试,性能数据如下:

PlatON并行计算技术实现

并行版本的性能明显优于串行版本,PlatON将在保证安全性和稳定性的同时不断提高其性能指标,从而为用户提供更好的服务。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发