引介

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

Ajian   |     |   494 次阅读

编者注:本文为 Turbo-Geth 项目的贡献者 Alexey Akhunov 发表的幻灯片。近期,Turbo-Geth 客户端因为出色的同步性能而备受关注。在这份名为 “too good to be true”(意即 “好到不像是真的” 或者说 “美如天方夜谭”)的 PPT 中,Alexey 解释了 Turbo-Geth 最重要的两大改进。一是将数据库模式从树式的改成扁平式的;因为树式的数据库虽然有助于快速计算出状态根,却无助于 EVM 快速访问状态对象;而使用扁平式的数据库,再引入一种 “中间哈希值” 的数据,就可以很好地满足 EVM 快速访问状态以及快速计算状态根的两大需要;二是阶段式同步(staged sync)方法,该方法将对一个区块的处理分解为特定的几个步骤,然后对连续的多个区块处理完同一个步骤之后,再从头对该批区块处理下一个步骤;这样做其实等于是在将数据插入到数据库之前先完成了预排序工作;另一方面,这也使得客户端的工作流程模块化了,允许我们针对性地优化性能。感兴趣的读者可以从文末的超链接中了解更多。

Turbo-Geth-too_good_to_be_true-1.jpg

Turbo-Geth-too_good_to_be_true-2.jpg

Turbo-Geth-too_good_to_be_true-3.jpg

Turbo-Geth-too_good_to_be_true-4.jpg

Turbo-Geth-too_good_to_be_true-5.jpg

Turbo-Geth-too_good_to_be_true-6.jpg

Turbo-Geth-too_good_to_be_true-7.jpg

Turbo-Geth-too_good_to_be_true-8.jpg

Turbo-Geth-too_good_to_be_true-9.jpg

Turbo-Geth-too_good_to_be_true-10.jpg

Turbo-Geth-too_good_to_be_true-11.jpg

Turbo-Geth-too_good_to_be_true-12.jpg

Turbo-Geth-too_good_to_be_true-13.jpg

Turbo-Geth-too_good_to_be_true-14.jpg

Turbo-Geth-too_good_to_be_true-15.jpg

Turbo-Geth-too_good_to_be_true-16.jpg

Turbo-Geth-too_good_to_be_true-17.jpg

Turbo-Geth-too_good_to_be_true-18.jpg

Turbo-Geth-too_good_to_be_true-19.jpg

Turbo-Geth-too_good_to_be_true-20.jpg

Turbo-Geth-too_good_to_be_true-21.jpg

(完)


原文链接: https://github.com/AlexeyAkhunov/turbo-geth-archive
作者: Alexey Akhunov


你可能还会喜欢:

Turbo-Geth 客户端:数据库改进

阶段式同步:重构完全同步模式(Full Sync)

Turbo-Geth 客户端和 Silkworm:过去与未来

 
0 人喜欢