Erigon

Core Developer · 2024–2026

Erigon is an open-source Ethereum execution client with a strong focus on efficient storage and access to historical blockchain data. It is particularly well suited for archive nodes, where the complete history of Ethereum state needs to remain available.

I worked full-time on the Erigon team as a core developer. I initially worked on execution and performance for Polygon, and later worked on the core team, focusing primarily on the storage layer. My work there focused on the on-disk representation of blockchain data: snapshot formats, historical state, indexes, and the infrastructure for building and accessing them efficiently.

Erigon is open source, so almost all of this work is public.

Selected contributions

Historical State Storage
→ Historical state is one of the largest parts of an archive node. Storing it efficiently involves a fundamental trade-off: reducing its disk footprint while preserving fast random access to individual historical values. → I worked on reducing this footprint without materially affecting access performance. The resulting changes reduced some of Erigon’s largest historical-state datasets by several times while preserving random-access and RPC performance. → I extended the snapshot format to support storage techniques tailored to different kinds of data, including independently compressed pages. While analysing real history snapshots, I also identified substantial redundancy caused by unchanged values being stored repeatedly and implemented deduplication during snapshot merges.

State Access Performance
→ Access to Ethereum state relies on several index structures, making index lookup performance part of the critical read path. → I profiled these lookup paths and identified avoidable memory allocations, decompression, and data reads. I reworked index traversal and memory reuse to eliminate much of this overhead. → In the most affected paths, memory allocations per lookup were reduced several-fold, alongside substantial improvements in lookup latency.

More contributions on GitHub ↗

← Back to home