Skip to content

reth download

Download public node snapshots

$ reth download --help
Usage: reth download [OPTIONS]

Options:
  -h, --help
          Print help (see a summary with '-h')

Datadir:
      --datadir <DATA_DIR>
          The path to the data dir for all reth files and subdirectories.

          Defaults to the OS-specific data directory:

          - Linux: `$XDG_DATA_HOME/reth/` or `$HOME/.local/share/reth/`
          - Windows: `{FOLDERID_RoamingAppData}/reth/`
          - macOS: `$HOME/Library/Application Support/reth/`

          [default: default]

      --datadir.static-files <PATH>
          The absolute path to store static files in.

      --datadir.rocksdb <PATH>
          The absolute path to store `RocksDB` database in.

      --datadir.pprof-dumps <PATH>
          The absolute path to store pprof dumps in.

      --config <FILE>
          The path to the configuration file to use

      --chain <CHAIN_OR_PATH>
          The chain this node is running.
          Possible values are either a built-in chain or the path to a chain specification file.

          Built-in chains:
              mainnet, sepolia, holesky, hoodi, dev

          [default: mainnet]

Database:
      --db.log-level <LOG_LEVEL>
          Database logging level. Levels higher than "notice" require a debug build

          Possible values:
          - fatal:   Enables logging for critical conditions, i.e. assertion failures
          - error:   Enables logging for error conditions
          - warn:    Enables logging for warning conditions
          - notice:  Enables logging for normal but significant condition
          - verbose: Enables logging for verbose informational
          - debug:   Enables logging for debug-level messages
          - trace:   Enables logging for trace debug-level messages
          - extra:   Enables logging for extra debug-level messages

      --db.exclusive <EXCLUSIVE>
          Open environment in exclusive/monopolistic mode. Makes it possible to open a database on an NFS volume

          [possible values: true, false]

      --db.max-size <MAX_SIZE>
          Maximum database size (e.g., 4TB, 8TB).

          This sets the "map size" of the database. If the database grows beyond this limit, the node will stop with an "environment map size limit reached" error.

          The default value is 8TB.

      --db.page-size <PAGE_SIZE>
          Database page size (e.g., 4KB, 8KB, 16KB).

          Specifies the page size used by the MDBX database.

          The page size determines the maximum database size. MDBX supports up to 2^31 pages, so with the default 4KB page size, the maximum database size is 8TB. To allow larger databases, increase this value to 8KB or higher.

          WARNING: This setting is only configurable at database creation; changing it later requires re-syncing.

      --db.growth-step <GROWTH_STEP>
          Database growth step (e.g., 4GB, 4KB)

      --db.read-transaction-timeout <READ_TRANSACTION_TIMEOUT>
          Read transaction timeout in seconds, 0 means no timeout

      --db.max-readers <MAX_READERS>
          Maximum number of readers allowed to access the database concurrently

      --db.sync-mode <SYNC_MODE>
          Controls how aggressively the database synchronizes data to disk

Static Files:
      --static-files.blocks-per-file.headers <BLOCKS_PER_FILE_HEADERS>
          Number of blocks per file for the headers segment

      --static-files.blocks-per-file.transactions <BLOCKS_PER_FILE_TRANSACTIONS>
          Number of blocks per file for the transactions segment

      --static-files.blocks-per-file.receipts <BLOCKS_PER_FILE_RECEIPTS>
          Number of blocks per file for the receipts segment

      --static-files.blocks-per-file.transaction-senders <BLOCKS_PER_FILE_TRANSACTION_SENDERS>
          Number of blocks per file for the transaction senders segment

      --static-files.blocks-per-file.account-change-sets <BLOCKS_PER_FILE_ACCOUNT_CHANGE_SETS>
          Number of blocks per file for the account changesets segment

      --static-files.blocks-per-file.storage-change-sets <BLOCKS_PER_FILE_STORAGE_CHANGE_SETS>
          Number of blocks per file for the storage changesets segment

Storage:
  -u, --url <URL>
          Specify a snapshot URL or let the command propose a default one.

          Browse available snapshots at https://snapshots.reth.rs
          or use --list-snapshots to see them from the CLI.

          Available snapshot sources:
          - https://snapshots.reth.rs (default)
          - https://publicnode.com/snapshots (full nodes & testnets)

          If no URL is provided, the latest archive snapshot for the selected chain
          will be proposed for download from https://snapshots-r2.reth.rs.

          Local file:// URLs are also supported for extracting snapshots from disk.

      --manifest-url <URL>
          URL to a snapshot manifest.json for modular component downloads.

          When provided, fetches this manifest instead of discovering it from the default base URL. Useful for testing with custom or local manifests.

      --manifest-path <PATH>
          Local path to a snapshot manifest.json for modular component downloads

      --with-txs
          Include transaction static files

      --with-receipts
          Include receipt static files

      --with-state-history
          Include account and storage history static files

      --with-senders
          Include transaction sender static files. Requires `--with-txs`

      --with-rocksdb
          Include RocksDB index files

      --archive
          Download all available components (archive node, no pruning)

      --minimal
          Download the minimal component set (same default as --non-interactive)

      --full
          Download the full node component set (matches default full prune settings)

      --without-rocksdb
          Skip optional RocksDB indices even when archive components are selected.

          This affects `--archive`/`--all` and TUI archive preset (`a`).

  -y, --non-interactive
          Skip interactive component selection. Downloads the minimal set (state + headers + transactions + changesets) unless explicit --with-* flags narrow it

      --resumable
          Use resumable two-phase downloads (download to disk first, then extract).

          Archives are downloaded to a .part file with HTTP Range resume support before extraction. Slower but tolerates network interruptions without restarting. By default, archives stream directly into the extractor.

      --download-concurrency <DOWNLOAD_CONCURRENCY>
          Maximum number of concurrent modular archive workers

          [default: 8]

      --list
          List available snapshots from snapshots.reth.rs and exit.

          Queries the snapshots API and prints all available snapshots for the selected chain, including block number, size, and manifest URL.

Logging:
      --log.stdout.format <FORMAT>
          The format to use for logs written to stdout

          Possible values:
          - json:     Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
          - log-fmt:  Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
          - terminal: Represents terminal-friendly formatting for logs

          [default: terminal]

      --log.stdout.filter <FILTER>
          The filter to use for logs written to stdout

          [default: ""]

      --log.file.format <FORMAT>
          The format to use for logs written to the log file

          Possible values:
          - json:     Represents JSON formatting for logs. This format outputs log records as JSON objects, making it suitable for structured logging
          - log-fmt:  Represents logfmt (key=value) formatting for logs. This format is concise and human-readable, typically used in command-line applications
          - terminal: Represents terminal-friendly formatting for logs

          [default: terminal]

      --log.file.filter <FILTER>
          The filter to use for logs written to the log file

          [default: debug]

      --log.file.directory <PATH>
          The path to put log files in

          [default: <CACHE_DIR>/logs]

      --log.file.name <NAME>
          The prefix name of the log files

          [default: reth.log]

      --log.file.max-size <SIZE>
          The maximum size (in MB) of one log file

          [default: 200]

      --log.file.max-files <COUNT>
          The maximum amount of log files that will be stored. If set to 0, background file logging is disabled.

          Default: 5 for `node` command, 0 for non-node utility subcommands.

      --log.journald
          Write logs to journald

      --log.journald.filter <FILTER>
          The filter to use for logs written to journald

          [default: error]

      --color <COLOR>
          Sets whether or not the formatter emits ANSI terminal escape codes for colors and other text formatting

          Possible values:
          - always: Colors on
          - auto:   Auto-detect
          - never:  Colors off

          [default: always]

      --logs-otlp[=<URL>]
          Enable `Opentelemetry` logs export to an OTLP endpoint.

          If no value provided, defaults based on protocol: - HTTP: `http://localhost:4318/v1/logs` - gRPC: `http://localhost:4317`

          Example: --logs-otlp=http://collector:4318/v1/logs

          [env: OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=]

      --logs-otlp.filter <FILTER>
          Set a filter directive for the OTLP logs exporter. This controls the verbosity of logs sent to the OTLP endpoint. It follows the same syntax as the `RUST_LOG` environment variable.

          Example: --logs-otlp.filter=info,reth=debug

          Defaults to INFO if not specified.

          [default: info]

Display:
  -v, --verbosity...
          Set the minimum log level.

          -v      Errors
          -vv     Warnings
          -vvv    Info
          -vvvv   Debug
          -vvvvv  Traces (warning: very verbose!)

  -q, --quiet
          Silence all log output

Tracing:
      --tracing-otlp[=<URL>]
          Enable `Opentelemetry` tracing export to an OTLP endpoint.

          If no value provided, defaults based on protocol: - HTTP: `http://localhost:4318/v1/traces` - gRPC: `http://localhost:4317`

          Example: --tracing-otlp=http://collector:4318/v1/traces

          [env: OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=]

      --tracing-otlp-protocol <PROTOCOL>
          OTLP transport protocol to use for exporting traces and logs.

          - `http`: expects endpoint path to end with `/v1/traces` or `/v1/logs` - `grpc`: expects endpoint without a path

          Defaults to HTTP if not specified.

          Possible values:
          - http: HTTP/Protobuf transport, port 4318, requires `/v1/traces` path
          - grpc: gRPC transport, port 4317

          [env: OTEL_EXPORTER_OTLP_PROTOCOL=]
          [default: http]

      --tracing-otlp.filter <FILTER>
          Set a filter directive for the OTLP tracer. This controls the verbosity of spans and events sent to the OTLP endpoint. It follows the same syntax as the `RUST_LOG` environment variable.

          Example: --tracing-otlp.filter=info,reth=debug,hyper_util=off

          Defaults to TRACE if not specified.

          [default: debug]

      --tracing-otlp.sample-ratio <RATIO>
          Trace sampling ratio to control the percentage of traces to export.

          Valid range: 0.0 to 1.0 - 1.0, default: Sample all traces - 0.01: Sample 1% of traces - 0.0: Disable sampling

          Example: --tracing-otlp.sample-ratio=0.0.

          [env: OTEL_TRACES_SAMPLER_ARG=]