Meet Akula: the fastest Ethereum implementation ever built

Artem Vorotnikov
2 min readDec 24, 2021

--

Ethereum is proudly known for its diversity of full node implementations that maintain network state, uphold protocol rules and provide their users a gateway into the world of web3. Diversity makes sure that network only works as intended, and according to protocol, not certain bugs in a single codebase.

Today I am happy to present the preview of new addition to this fine family: Akula.

True innovation meets systems language

Akula grew out of an internal project in Erigon team, where it was originally conceived as a helper library for Erigon database. As a recap, here are the key innovations of Erigon node:

  • A modular client design, enabling parallelized development of the client
  • New (“flat”) model of storing Ethereum state, allowing a lower disk footprint
  • Preprocessing of data outside of the storage engine, making database write operations faster by a magnitude
  • Staged synchronization technique, allowing very fast synchronization

This brings the following benefits to Erigon node operators:

  • Much lower disk footprint
    - <2TB for Ethereum mainnet archive node, <600GB for pruned node.
  • Faster sync speed
    - An archive full validation node can be bootstrapped in under 3 days.
    - Performance improvements allow Erigon to run even on HDD.
  • Crash resilience
    - Forceful shutdown or power failure cannot damage Erigon’s database.
  • Extremely fast historical RPC queries like eth_calland trace_callMany

All these innovations are reflected in the design of Akula as well. And on top of this, Akula is written in Rust, fast, elegant and safe systems programming language, which keeps a whole class of memory and concurrency bugs at bay. Akula leverages a new Rust EVM interpreter evmodin, specifically designed for Akula to allow for asynchronous state access.

All of this enables the new standard of performance, not seen in full nodes before.

Unprecedented performance

As with Erigon, Akula’s sync is split into stages, which allows for unprecedented parallelization of all major operations. The longest stage is execution of all transactions through EVM.

Erigon and Akula execution of mainnet blocks, courtesy of Paolo Rebuffo

Akula beats already fast Erigon by 1.5–2 times on execution performance. Without building additional indexes, we are looking at full validation of Ethereum mainnet from genesis in under 24h.

Contributors welcome

Akula is available on GitHub: akula-bft/akula

I wish you a Merry Christmas and Happy New Year, and hope that 2022 will be the year of true decentralization with Akula enabling it even more.

--

--