鸵鸟区块链

Turbo-Geth 客户端:如何实现性能改进

以太坊爱好者 2020-10-20 11:38
摘要:

扁平的数据库 + “中间哈希值” + “阶段式同步”

编者注:本文为 Turbo-Geth 项目的贡献者 Alexey Akhunov 发表的幻灯片。近期,Turbo-Geth 客户端因为出色的同步性能而备受关注。

在这份名为 “too good to be true”(意即 “好到不像是真的” 或者说 “美如天方夜谭”)的 PPT 中,Alexey 解释了 Turbo-Geth 最重要的两大改进。

一是将数据库模式从树式的改成扁平式的;因为树式的数据库虽然有助于快速计算出状态根,却无助于 EVM 快速访问状态对象;而使用扁平式的数据库,再引入一种 “中间哈希值” 的数据,就可以很好地满足 EVM 快速访问状态以及快速计算状态根的两大需要;

二是阶段式同步(staged sync)方法,该方法将对一个区块的处理分解为特定的几个步骤,然后对连续的多个区块处理完同一个步骤之后,再从头对该批区块处理下一个步骤;这样做其实等于是在将数据插入到数据库之前先完成了预排序工作;另一方面,这也使得客户端的工作流程模块化了,允许我们针对性地优化性能。感兴趣的读者可以从文末的超链接中了解更多。

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

引介 | Turbo-Geth 客户端:如何实现性能改进

(完)


原文链接:

https://github.com/AlexeyAkhunov/turbo-geth-archive

作者:Alexey Akhunov

来源:以太坊爱好者(ID:ethfans)

声明: 鸵鸟区块链所有发布内容均为原创或授权发布,如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao),任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议。

以太坊爱好者

以太坊爱好者

401 篇 作品