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.

