silkworm
silkworm copied to clipboard
execution: improve stage Execution according to C API execute functions
Since we developed our C API execute functions for Erigon++ (i.e. silkworm_execute_blocks_ephemeral and silkworm_execute_blocks_perpetual), the Execution stage of stand-alone Silkworm fell behind on some design choices:
- the Execution stage still uses some rule-of-thumb gas-based accounting to decide when change batch must be flushed, differently from what our C API execute functions and Erigon do
- our C API exploits different mechanisms to prefetch the blocks to execute: offloaded prefetching vs inline prefetching
- our C API has introduced a convenient
BlockExecutorabstraction