# reth node Start the node ```bash $ reth node --help Usage: reth node [OPTIONS] Options: --config The path to the configuration file to use. --chain 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, dev [default: mainnet] --instance Add a new instance of a node. Configures the ports of the node to avoid conflicts with the defaults. This is useful for running multiple nodes on the same machine. Max number of instances is 200. It is chosen in a way so that it's not possible to have port numbers that conflict with each other. Changes to the following port numbers: - `DISCOVERY_PORT`: default + `instance` - 1 - `AUTH_PORT`: default + `instance` * 100 - 100 - `HTTP_RPC_PORT`: default - `instance` + 1 - `WS_RPC_PORT`: default + `instance` * 2 - 2 [default: 1] --with-unused-ports Sets all ports to unused, allowing the OS to choose random unused ports when sockets are bound. Mutually exclusive with `--instance`. -h, --help Print help (see a summary with '-h') Metrics: --metrics Enable Prometheus metrics. The metrics will be served at the given interface and port. Datadir: --datadir 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 The absolute path to store static files in. Networking: -d, --disable-discovery Disable the discovery service --disable-dns-discovery Disable the DNS discovery --disable-discv4-discovery Disable Discv4 discovery --enable-discv5-discovery Enable Discv5 discovery --discovery.addr The UDP address to use for devp2p peer discovery version 4 [default: 0.0.0.0] --discovery.port The UDP port to use for devp2p peer discovery version 4 [default: 30303] --discovery.v5.addr The UDP IPv4 address to use for devp2p peer discovery version 5. Overwritten by `RLPx` address, if it's also IPv4 --discovery.v5.addr.ipv6 The UDP IPv6 address to use for devp2p peer discovery version 5. Overwritten by `RLPx` address, if it's also IPv6 --discovery.v5.port The UDP IPv4 port to use for devp2p peer discovery version 5. Not used unless `--addr` is IPv4, or `--discovery.v5.addr` is set [default: 9000] --discovery.v5.port.ipv6 The UDP IPv6 port to use for devp2p peer discovery version 5. Not used unless `--addr` is IPv6, or `--discovery.addr.ipv6` is set [default: 9000] --discovery.v5.lookup-interval The interval in seconds at which to carry out periodic lookup queries, for the whole run of the program [default: 60] --discovery.v5.bootstrap.lookup-interval The interval in seconds at which to carry out boost lookup queries, for a fixed number of times, at bootstrap [default: 5] --discovery.v5.bootstrap.lookup-countdown The number of times to carry out boost lookup queries at bootstrap [default: 100] --trusted-peers Comma separated enode URLs of trusted peers for P2P connections. --trusted-peers enode://abcd@192.168.0.1:30303 --trusted-only Connect to or accept from trusted peers only --bootnodes Comma separated enode URLs for P2P discovery bootstrap. Will fall back to a network-specific default if not specified. --dns-retries Amount of DNS resolution requests retries to perform when peering [default: 0] --peers-file The path to the known peers file. Connected peers are dumped to this file on nodes shutdown, and read on startup. Cannot be used with `--no-persist-peers`. --identity Custom node identity [default: reth/-/] --p2p-secret-key Secret key to use for this node. This will also deterministically set the peer ID. If not specified, it will be set in the data dir for the chain being used. --no-persist-peers Do not persist peers. --nat NAT resolution method (any|none|upnp|publicip|extip:\) [default: any] --addr Network listening address [default: 0.0.0.0] --port Network listening port [default: 30303] --max-outbound-peers Maximum number of outbound requests. default: 100 --max-inbound-peers Maximum number of inbound requests. default: 30 --pooled-tx-response-soft-limit Experimental, for usage in research. Sets the max accumulated byte size of transactions to pack in one response. Spec'd at 2MiB. [default: 2097152] --pooled-tx-pack-soft-limit Experimental, for usage in research. Sets the max accumulated byte size of transactions to request in one request. Since `RLPx` protocol version 68, the byte size of a transaction is shared as metadata in a transaction announcement (see `RLPx` specs). This allows a node to request a specific size response. By default, nodes request only 128 KiB worth of transactions, but should a peer request more, up to 2 MiB, a node will answer with more than 128 KiB. Default is 128 KiB. [default: 131072] RPC: --http Enable the HTTP-RPC server --http.addr Http server address to listen on [default: 127.0.0.1] --http.port Http server port to listen on [default: 8545] --http.api Rpc Modules to be configured for the HTTP server [possible values: admin, debug, eth, net, trace, txpool, web3, rpc, reth, ots, eth-call-bundle] --http.corsdomain Http Corsdomain to allow request from --ws Enable the WS-RPC server --ws.addr Ws server address to listen on [default: 127.0.0.1] --ws.port Ws server port to listen on [default: 8546] --ws.origins Origins from which to accept `WebSocket` requests --ws.api Rpc Modules to be configured for the WS server [possible values: admin, debug, eth, net, trace, txpool, web3, rpc, reth, ots, eth-call-bundle] --ipcdisable Disable the IPC-RPC server --ipcpath Filename for IPC socket/pipe within the datadir [default: .ipc] --authrpc.addr Auth server address to listen on [default: 127.0.0.1] --authrpc.port Auth server port to listen on [default: 8551] --authrpc.jwtsecret Path to a JWT secret to use for the authenticated engine-API RPC server. This will enforce JWT authentication for all requests coming from the consensus layer. If no path is provided, a secret will be generated and stored in the datadir under `//jwt.hex`. For mainnet this would be `~/.reth/mainnet/jwt.hex` by default. --auth-ipc Enable auth engine API over IPC --auth-ipc.path Filename for auth IPC socket/pipe within the datadir [default: _engine_api.ipc] --rpc.jwtsecret Hex encoded JWT secret to authenticate the regular RPC server(s), see `--http.api` and `--ws.api`. This is __not__ used for the authenticated engine-API RPC server, see `--authrpc.jwtsecret`. --rpc.max-request-size Set the maximum RPC request payload size for both HTTP and WS in megabytes [default: 15] --rpc.max-response-size Set the maximum RPC response payload size for both HTTP and WS in megabytes [default: 160] [aliases: rpc.returndata.limit] --rpc.max-subscriptions-per-connection Set the maximum concurrent subscriptions per connection [default: 1024] --rpc.max-connections Maximum number of RPC server connections [default: 500] --rpc.max-tracing-requests Maximum number of concurrent tracing requests [default: ] --rpc.max-blocks-per-filter Maximum number of blocks that could be scanned per filter request. (0 = entire chain) [default: 100000] --rpc.max-logs-per-response Maximum number of logs that can be returned in a single response. (0 = no limit) [default: 20000] --rpc.gascap Maximum gas limit for `eth_call` and call tracing RPC methods [default: 50000000] --rpc.eth-proof-window The maximum proof window for historical proof generation. This value allows for generating historical proofs up to configured number of blocks from current tip (up to `tip - window`) [default: 0] --rpc.proof-permits Maximum number of concurrent getproof requests [default: 25] RPC State Cache: --rpc-cache.max-blocks Max number of blocks in cache [default: 5000] --rpc-cache.max-receipts Max number receipts in cache [default: 2000] --rpc-cache.max-envs Max number of bytes for cached env data [default: 1000] --rpc-cache.max-concurrent-db-requests Max number of concurrent database requests [default: 512] Gas Price Oracle: --gpo.blocks Number of recent blocks to check for gas price [default: 20] --gpo.ignoreprice Gas Price below which gpo will ignore transactions [default: 2] --gpo.maxprice Maximum transaction priority fee(or gasprice before London Fork) to be recommended by gpo [default: 500000000000] --gpo.percentile The percentile of gas prices to use for the estimate [default: 60] TxPool: --txpool.pending-max-count Max number of transaction in the pending sub-pool [default: 10000] --txpool.pending-max-size Max size of the pending sub-pool in megabytes [default: 20] --txpool.basefee-max-count Max number of transaction in the basefee sub-pool [default: 10000] --txpool.basefee-max-size Max size of the basefee sub-pool in megabytes [default: 20] --txpool.queued-max-count Max number of transaction in the queued sub-pool [default: 10000] --txpool.queued-max-size Max size of the queued sub-pool in megabytes [default: 20] --txpool.max-account-slots Max number of executable transaction slots guaranteed per account [default: 16] --txpool.pricebump Price bump (in %) for the transaction pool underpriced check [default: 10] --blobpool.pricebump Price bump percentage to replace an already existing blob transaction [default: 100] --txpool.max-tx-input-bytes Max size in bytes of a single transaction allowed to enter the pool [default: 131072] --txpool.max-cached-entries The maximum number of blobs to keep in the in memory blob cache [default: 100] --txpool.nolocals Flag to disable local transaction exemptions --txpool.locals Flag to allow certain addresses as local --txpool.no-local-transactions-propagation Flag to toggle local transaction propagation --txpool.additional-validation-tasks Number of additional transaction validation tasks to spawn [default: 1] Builder: --builder.extradata Block extra data set by the payload builder [default: reth//] --builder.gaslimit Target gas ceiling for built blocks [default: 30000000] --builder.interval The interval at which the job should build a new payload after the last. Interval is specified in seconds or in milliseconds if the value ends with `ms`: * `50ms` -> 50 milliseconds * `1` -> 1 second [default: 1] --builder.deadline The deadline for when the payload builder job should resolve [default: 12] --builder.max-tasks Maximum number of tasks to spawn for building a payload [default: 3] Debug: --debug.terminate Flag indicating whether the node should be terminated after the pipeline sync --debug.tip Set the chain tip manually for testing purposes. NOTE: This is a temporary flag --debug.max-block Runs the sync only up to the specified block --debug.etherscan [] Runs a fake consensus client that advances the chain using recent block hashes on Etherscan. If specified, requires an `ETHERSCAN_API_KEY` environment variable --debug.rpc-consensus-ws Runs a fake consensus client using blocks fetched from an RPC `WebSocket` endpoint --debug.skip-fcu If provided, the engine will skip `n` consecutive FCUs --debug.skip-new-payload If provided, the engine will skip `n` consecutive new payloads --debug.reorg-frequency If provided, the chain will be reorged at specified frequency --debug.engine-api-store The path to store engine API messages at. If specified, all of the intercepted engine API messages will be written to specified location Database: --db.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 Open environment in exclusive/monopolistic mode. Makes it possible to open a database on an NFS volume [possible values: true, false] Dev testnet: --dev Start the node in dev mode This mode uses a local proof-of-authority consensus engine with either fixed block times or automatically mined blocks. Disables network discovery and enables local http server. Prefunds 20 accounts derived by mnemonic "test test test test test test test test test test test junk" with 10 000 ETH each. --dev.block-max-transactions How many transactions to mine per block --dev.block-time Interval between blocks. Parses strings using [`humantime::parse_duration`] --dev.block-time 12s Pruning: --full Run full node. Only the most recent [`MINIMUM_PRUNING_DISTANCE`] block states are stored. This flag takes priority over pruning configuration in reth.toml Engine: --engine.experimental Enable the engine2 experimental features on reth binary Logging: --log.stdout.format The format to use for logs written to stdout [default: terminal] 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 --log.stdout.filter The filter to use for logs written to stdout [default: ] --log.file.format The format to use for logs written to the log file [default: terminal] 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 --log.file.filter The filter to use for logs written to the log file [default: debug] --log.file.directory The path to put log files in [default: /logs] --log.file.max-size The maximum size (in MB) of one log file [default: 200] --log.file.max-files The maximum amount of log files that will be stored. If set to 0, background file logging is disabled [default: 5] --log.journald Write logs to journald --log.journald.filter The filter to use for logs written to journald [default: error] --color Sets whether or not the formatter emits ANSI terminal escape codes for colors and other text formatting [default: always] Possible values: - always: Colors on - auto: Colors on - never: Colors off 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 ```