Grevm (both 1.0 and 2.1) is reth-ready, please see use-with-reth.md for more details.
Grevm is a Block-STM inspired optimistic parallel EVM execution engine that leverages DAG-based task scheduling, dynamic dependency management, and parallel state storage to significantly boost throughput of revm, while reducing CPU overhead in high-conflict scenarios.

Grevm 2.1 is composed of three main modules:
Dependency Manager (DAG Manager):
Constructs a directed acyclic graph (DAG) of transaction dependencies based on speculative read/write hints.
Execution Scheduler:
Selects transactions with no dependencies (out-degree of 0) for parallel execution, groups adjacent dependent
transactions into task groups, and dynamically updates dependencies to minimize re-execution.
Parallel State Storage:
Provides an asynchronous commit mechanism with multi-version memory to reduce latency and manage miner rewards and
self-destruct opcodes efficiently.
All tests and benchmarks require the test-utils feature:
cargo test --features test-utils
This runs the library unit tests plus the integration suites (erc20, native_transfers,
uniswap, eip-7702, and the mainnet replay test). See
Testing & Benchmarking for the full guide, including how to replay real mainnet
blocks (EIP-7702 included) and the available environment-variable knobs.
To reproduce the synthetic gigagas benchmark:
JEMALLOC_SYS_WITH_MALLOC_CONF="thp:always,metadata_thp:always" \
NUM_EOA=<num_accounts> HOT_RATIO=<hot_ratio> DB_LATENCY_US=<latency_in_us> \
cargo bench --features test-utils --bench gigagas
Replace <num_accounts>, <hot_ratio>, and <latency_in_us> with your desired parameters. There
is also a continuous benchmark that runs merged real-mainnet "big blocks"; see
Testing & Benchmarking.
For a comprehensive explanation of the design, algorithmic choices, and in-depth benchmark analysis, please refer to the full technical report.
$ claude mcp add grevm \
-- python -m otcore.mcp_server <graph>