Reth
Installing Reth for extreme performance and sync speed.
Reth
Reth (Rust Ethereum) is a new, modular execution client written in Rust. It is developed by Paradigm and is famous for its incredible sync speed and low storage requirements.
🛡️ Role: Reth is the Performance Choice. It can fully sync a mainnet archive node in days (not weeks) and uses significantly less storage than Geth or Erigon.
Note: By default, Reth runs as an Archive Node. If you want a standard Full Node (to save space), you must add the
--fullflag.
1. Install Dependencies
Reth requires a few system libraries to run efficient database operations.
Bash
# Update repositories
sudo apt update
# Install required libraries
sudo apt install -y libclang-dev pkg-config build-essential libssl-dev2. Download & Install
We will download the latest pre-built binary from the official Paradigm repository.
A. Create the Application Directory
Bash
# Create a folder for the binary
sudo mkdir -p /usr/local/lib/reth
# Download the latest Linux release (Check https://github.com/paradigmxyz/reth/releases)
# Example for v1.1.0
sudo wget https://github.com/paradigmxyz/reth/releases/download/v1.1.0/reth-v1.1.0-x86_64-unknown-linux-gnu.tar.gz -O reth.tar.gz
# Extract the archive
sudo tar -xvzf reth.tar.gz -C /usr/local/lib/reth
# Cleanup
rm reth.tar.gzB. Set Permissions Ensure the ethereum user owns the directory and the binary is executable.
Bash
sudo chown -R ethereum:ethereum /usr/local/lib/reth
sudo chmod +x /usr/local/lib/reth/reth3. Configure Systemd Service
We will configure Reth to run as a background service.
💾 Storage Mode:
Archive Node (Default): Stores everything. ~2.5TB. (No flag needed).
Full Node: Prunes historical data. ~1.2TB. (Add
--fullflag).
Create the service file:
Bash
sudo nano /etc/systemd/system/reth.servicePaste the following configuration:
Ini, TOML
[Unit]
Description=Reth Execution Client
After=network.target
[Service]
User=ethereum
Group=ethereum
Type=simple
Restart=always
RestartSec=5
# Execution Command
ExecStart=/usr/local/lib/reth/reth node \
--chain mainnet \
--datadir /home/ethereum/execution \
--full \
--authrpc.jwtsecret /home/ethereum/jwt/jwt.hex \
--authrpc.addr 127.0.0.1 \
--authrpc.port 8551 \
--http \
--http.addr 0.0.0.0 \
--http.port 8545 \
--http.api eth,net,web3,debug,trace
# Resource Limits
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target🔍 Flag Explanation:
--full: Runs as a Full Node (Pruned). Remove this line if you want an Archive Node.--http.api: Reth supports advanceddebugandtraceAPIs out of the box with very low overhead.
4. Start the Service
Reload the systemd daemon and start the node.
Bash
# Reload systemd configuration
sudo systemctl daemon-reload
# Enable Reth to start on boot
sudo systemctl enable reth
# Start the service
sudo systemctl start reth5. Verify Status
Check the logs. Reth has a very clean log output.
Bash
sudo journalctl -fu rethExpected Output:
Pipeline: You will see "Stages" similar to Erigon (Headers, Bodies, Sender Recovery, Execution).
Speed: Reth prints its sync speed (e.g.,
12.5 Mgas/s).Waiting: It will eventually wait for the Consensus Client.
Last updated