Turbo-Geth contributor Alexey Akhunov explained two important improvements: one is to change the database model from a tree to a flat one; the other is a phased synchronization method.
Original title: “Introduction | Turbo-Geth Client: How to Improve Performance”
Written by: Alexey Akhunov, Turbo-Geth contributor
This article is a slide published by Alexey Akhunov, a contributor to the Turbo-Geth project. Recently, Turbo-Geth client has attracted much attention because of its excellent synchronization performance. In this PPT titled “too good to be true” which means “too good to be true” or “beautiful as a fantasy”), Alexey explained the two most important improvements of Turbo-Geth. One is to change the database model from a tree type to a flat type; because the tree type database is helpful to quickly calculate the state root, but it does not help the EVM to quickly access the state object; while using a flat database, another This kind of “intermediate hash value” data can well meet the two needs of EVM for fast access to the state and fast calculation of the state root; the second is the staged sync method, which will process a block Decompose into several specific steps, and then process the same step for multiple consecutive blocks, and then process the next step for the batch of blocks from the beginning; this is actually equivalent to completing the data before inserting the data into the database Pre-sorting work; on the other hand, this also makes the client’s workflow modular, allowing us to optimize performance in a targeted manner. Interested readers can learn more from the hyperlink at the end of the article.
Source link: github.com