mrkeyoor.com_
Sat 26 Sept 16:11 UTC
Self-Hostedevaluationupdated 26 Sept 2026

reth review

Reth is a Rust implementation of Ethereum's execution layer, the node component that processes transactions, maintains chain state, and exposes execution APIs. You can run it as an Ethereum or EVM-chain client, or import its crates to build custom nodes and execution extensions.

Verdict

Our Reth source run resolved 1,159 packages, hit the 900-second build cap, and then failed its test compilation after 587 seconds because llvm-sys could not find a suitable LLVM. Operators should start with the published v2.6.0 binary or container and reserve source builds for teams that need Reth's Rust crates or custom node behavior. Reth is a credible production execution client, but the storage, consensus-client, release-migration, and monitoring work still belongs to you.

We ran it

Lab card: what happened when we ran rethScreenshot of reth (reth.rs)
Install✓ · 16s1159 packages
Build✗ timed out · 900s
Tests✗ · 587sran, no count parsed
Repo1870 files~541,002 lines of source · 44.4 MB · 31 CI workflows · Dockerfile

Answers from our run

Does reth build from source?

Dependencies installed in 16 seconds (1159 packages), and the build failed. We cloned commit 7e31e83 into a clean Debian container with 3 CPUs and no project-specific setup.

Do reth's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use reth?

Hobbyists with small disks: the documentation calls for at least 1.2 TB for a pruned Ethereum full node and more for archive or Base configurations.

What are the alternatives to reth?

Geth, Nethermind, Erigon. Our Reth source run resolved 1,159 packages, hit the 900-second build cap, and then failed its test compilation after 587 seconds because llvm-sys could not find a suitable LLVM.

Setup2/5Build timed out at 900 seconds; tests then failed on missing LLVM
Docs4/5Deep operator docs, though source pages disagree on the Rust version
Community5/55,790 stars with active releases and 287 combined issues and PRs
Maturity5/5Production releases, audits, and live node operator guidance

Who it’s for

Ethereum node operators who can provision fast NVMe storage and pair an execution client with a consensus client.
RPC, indexing, simulation, and block-building teams that need a configurable Rust client.
Rust developers building custom EVM chains or importing individual node components.
Operators prepared to test release configuration changes before rolling them into a live fleet.

Who it’s NOT for

Hobbyists with small disks: the documentation calls for at least 1.2 TB for a pruned Ethereum full node and more for archive or Base configurations.
Windows users restricted to WSL1: the source installation guide says Reth does not work there.
Teams seeking an Optimism client in this repository: the README says OP-Reth moved to ethereum-optimism/optimism.
Operators reading Reth's database from another process without changing v2.6 defaults: the release notes require disabling state masking for that access pattern.
Contributors expecting a minimal Rust-only build host: our tests stopped in llvm-sys because no suitable LLVM was found system-wide or through LLVM_SYS_.

Setup reality

Our dependency install succeeded in 16 seconds and resolved 1,159 packages. The build did not finish within 900 seconds. Tests failed with exit 101 after 587 seconds because llvm-sys reported that it could not find a suitable LLVM version system-wide or through an LLVM_SYS_ setting.

Source builds require Rust 1.95 according to the root README and Cargo manifest. The OS setup also needs LLVM or libclang, pkg-config, and build tools. The full test path needs Geth, although a subset can run without it.

Operating a node is a separate commitment. The published Ethereum full-node floor is 1.2 TB of TLC NVMe, 8 GB or more of memory, and stable 24 Mbps bandwidth. Docker is supported from Engine 20.10.10, with a consensus client and shared JWT needed for an Ethereum node.

Reth v2.6.0 is an execution client, not a complete validator

Reth processes Ethereum transactions, stores execution state, serves RPC requests, and connects to the network as an execution-layer client. A post-merge Ethereum node also needs a consensus client connected through the authenticated Engine API. The supplied Docker Compose example pairs Reth with Lighthouse and generates a shared JWT, which is a clearer picture of the operating unit than running the reth binary alone.

The Rust codebase is deliberately modular. Individual crates cover storage, networking, the EVM, transaction pools, RPC, and node assembly, while execution extensions let applications consume the chain as it advances. That makes Reth appealing beyond a standard node. It also means downstream builders inherit public API changes, database rules, and protocol upgrades from a fast-moving 1,870-file repository with roughly 541,002 lines of source.

What happened when we ran it

Our commit 7e31e83 checkout occupied 44.4 MB before dependencies. The dependency step succeeded in 16 seconds and resolved 1,159 packages. Compilation was still running when the 900-second limit arrived, so we have no successful build time. That result is specific to a 3-CPU, 12 GB unprivileged Rust container and should be read as source-build cost, not node throughput.

The test command failed with exit 101 after 587 seconds. Its final compiler error came from llvm-sys, which said no suitable LLVM was available system-wide or through an LLVM_SYS_ environment setting. The log does not show a test assertion failure because compilation never reached that point. It also does not prove which package installation would satisfy this exact image, so the defensible finding is that the documented source prerequisites were incomplete in our fresh container.

Rust 1.95 and LLVM make source builds a prepared-host job

The root README and current Cargo manifest set the minimum Rust version to 1.95. Reth's source guide tells Ubuntu users to install libclang-dev, pkg-config, and build-essential, while macOS and Windows instructions install LLVM through their package managers. The guide still names Rust 1.88 as its minimum, so builders should trust the checked-out manifest and README over that lagging sentence.

Full project testing uses cargo nextest, and the README says Geth is required for the complete suite. A subset can run without it. Our scan found 31 CI workflow files and a Dockerfile, though no root tests directory. Tests live across the Rust workspace and supporting paths, so that directory signal should not be mistaken for an absence of tests. It only describes the checkout layout measured by the harness.

An Ethereum full node starts at 1.2 TB of fast storage

Reth's system guide gives an Ethereum full node a floor of 1.2 TB on TLC NVMe, 8 GB or more of memory, and stable 24 Mbps bandwidth. The archive profile starts at 2.8 TB. Those figures were dated June 23, 2025 and will rise with chain history, so capacity planning needs headroom rather than an exact-size purchase. Disk performance matters more than collecting many slow CPU cores.

Base is heavier in the same guide: a full node starts at 2 TB and 128 GB of memory, while an archive node starts at 4.1 TB. The Docker path requires Engine 20.10.10 or newer and exposes peer traffic on TCP and UDP port 30303. Metrics can use port 9001. A public RPC service adds rate limiting, authentication boundaries, backups, alerts, and upgrade rehearsals that the container command does not provide.

v2.6.0 changed what operators can assume is on disk

Release v2.6.0 enables partial persistence by default with a 50-block persistence threshold, a 5-block memory target, and 30 state-masking blocks. The release says operators that read the database out of process should set the masking value to 0. That is a concrete upgrade check for indexers and internal tooling because an external reader may otherwise expect state keys that are intentionally still represented in memory.

The same release changes Engine API and SDK surfaces. Custom Engine implementations must add the REST-SSZ interface, and downstream code constructing public transaction types may need a new cache field. These are manageable migrations when a team reads release notes and stages upgrades. They are dangerous when an unattended deployment tracks a floating image tag and assumes every point release is operationally interchangeable.

Active development comes with an active defect queue

GitHub recorded 5,790 stars, 287 combined open issues and pull requests, and a last push on September 26, 2026. Reth v2.6.0 shipped on September 17. Recent bug reports include pending transaction filters missing updates while the canonical head is unchanged and execution extensions being delayed behind notification backlogs. The issue activity fits a production client under continuing protocol work rather than an idle repository.

Reth has released stable builds since 2024 and documents completed security audits for the client and its EVM dependency. Its README warns that internal NippyJar and Compact encodings are not hardened for malicious input, which is another reason to keep database files inside the trusted node boundary. Use the published artifacts for ordinary deployment, pin the release, and make the 1.2 TB storage floor plus consensus-client integration part of the decision before debating client speed.

Alternatives

ProjectWhat it isPick it when
Geth gh↗The long-established Go execution client for Ethereum.pick this instead when the broadest operator familiarity and ecosystem history matter more than a Rust-based modular design.
NethermindA .NET execution client used for Ethereum and compatible networks.pick this instead when your team prefers the .NET ecosystem or needs a second client implementation for fleet diversity.
ErigonAn execution client designed around staged sync and storage efficiency.pick this instead when Erigon's sync model and operational tooling fit your indexing or archive-node workload better.

What people are saying

  1. [github-trending] paradigmxyz/reth

Sources

  1. Reth repository and README
  2. Reth v2.6.0 release
  3. Reth source installation guide
  4. Reth system requirements
  5. Pending transaction filter bug report
  6. Execution extension notification backlog report

More self-hosted reviews

umbrel · openbao · NewPipe · CFBox · wg-easy · probo · the whole board →