Skip to content

Running the Node

The base-reth-node binary starts the Base L2 execution client once you have a source build or Docker image. For production guidance, see Node Operations.

Run the binary directly from the build output directory:

Terminal window
./target/release/base-reth-node

Or, if you used just build-node:

Terminal window
./target/release/base-reth-node

The node will begin syncing from the network. On the first run it creates a data directory (by default ~/.local/share/reth/ on Linux, ~/Library/Application Support/reth/ on macOS) and starts downloading blocks.

View all available options and subcommands:

Terminal window
./target/release/base-reth-node --help

This prints the full help text including every flag, option, and subcommand. It is the definitive reference for the CLI and is always in sync with the version you built.

Override the default data directory:

Terminal window
./target/release/base-reth-node --datadir /mnt/ssd/base-node

Enable the HTTP JSON-RPC server:

Terminal window
./target/release/base-reth-node \
--http \
--http.addr 127.0.0.1 \
--http.port 8545

By default the server only listens on localhost. Set --http.addr 0.0.0.0 to accept connections from other machines (make sure your firewall is configured appropriately).

Enable the WebSocket server alongside (or instead of) HTTP:

Terminal window
./target/release/base-reth-node \
--ws \
--ws.addr 127.0.0.1 \
--ws.port 8546

Control log verbosity with the -v flag (can be repeated) or the RUST_LOG environment variable:

Terminal window
# Increase verbosity
./target/release/base-reth-node -vvv
# Fine-grained control via RUST_LOG
RUST_LOG=info,reth=debug ./target/release/base-reth-node

Enable the Prometheus metrics endpoint:

Terminal window
./target/release/base-reth-node \
--metrics 127.0.0.1:9001

Point your Prometheus instance at http://<host>:9001/metrics to scrape node metrics.

A typical invocation that enables both HTTP and WebSocket RPC, metrics, and stores data on a dedicated volume:

Terminal window
./target/release/base-reth-node \
--datadir /data/base-node \
--http \
--http.addr 0.0.0.0 \
--http.port 8545 \
--ws \
--ws.addr 0.0.0.0 \
--ws.port 8546 \
--metrics 0.0.0.0:9001 \
-vv

Send SIGINT (Ctrl+C) or SIGTERM to gracefully shut down the node. It will flush pending state to disk before exiting. Avoid sending SIGKILL unless absolutely necessary, as it can leave the database in an inconsistent state requiring a repair on next startup.

  • Development Workflow — learn the day-to-day check, test, and fix commands.
  • Local Devnet — spin up a full local network for integration testing.
  • Configuration — detailed configuration reference for production deployments.