NethermindEth / Paprika

A custom storage engine of Nethermind, benefiting from the alignment of the underlying data structure with the layout of State & Storage trees of Ethereum.
GNU Lesser General Public License v3.0
91 stars 14 forks source link

StateRootPage introduced #338

Closed Scooletz closed 5 months ago

Scooletz commented 5 months ago

This PR changes how the state is handled for Merkle. During running tests for dangling transactions, it was found that 20% of the block application is the state with data being flushed down. This application speed is important as it limits the depth of the in-memory queue for the blocks to be applied.

With removal of top 2 layers of the State tree memoization for RLP, and separating the Merkle of length of the key <2 from the others we should do much better.

Benchmarks

Before

image

github-actions[bot] commented 5 months ago

Code Coverage

Package Line Rate Branch Rate Health
Paprika 85% 79%
Summary 85% (3889 / 4563) 79% (1220 / 1536)

Minimum allowed line rate is 75%