op-reth v2.2.3.
For an upstream cross-reference see the Reth CLI documentation.
op-reth is the recommended execution client for new OP Stack deployments. When pairing with op-node, remember to set
--l2.enginekind=reth on op-node (op-node still defaults to geth for backward compatibility). See the op-node configuration options page for the matching engine-side flags.General Options
Options for configuring the node instance and chain.config
The path to the configuration file to use.- Syntax
--config <FILE>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:- Syntax
- Default
--chain <CHAIN_OR_PATH>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− 1AUTH_PORT: default + (instance× 100) − 100HTTP_RPC_PORT: default −instance+ 1WS_RPC_PORT: default + (instance× 2) − 2IPC_PATH: default +-instance
- Syntax
--instance <INSTANCE>with-unused-ports
Sets all ports to unused, allowing the OS to choose random unused ports when sockets are bound. Mutually exclusive with--instance.
- Syntax
--with-unused-portsMetrics
Options for Prometheus metrics.metrics
Enable Prometheus metrics. The metrics will be served at the given interface and port.- Syntax
--metrics <PROMETHEUS>metrics.prometheus.push.url
URL for pushing Prometheus metrics to a push gateway. If set, the node will periodically push metrics to the specified push gateway URL.- Syntax
--metrics.prometheus.push.url <PUSH_GATEWAY_URL>metrics.prometheus.push.interval
Interval in seconds for pushing metrics to push gateway. Default: 5 seconds- Syntax
- Default
--metrics.prometheus.push.interval <SECONDS>Datadir
Options for data storage.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/
- Syntax
- Default
--datadir <DATA_DIR>datadir.static-files
The absolute path to store static files in.- Syntax
--datadir.static-files <PATH>datadir.rocksdb
The absolute path to storeRocksDB database in.
- Syntax
--datadir.rocksdb <PATH>datadir.pprof-dumps
The absolute path to store pprof dumps in.- Syntax
--datadir.pprof-dumps <PATH>Networking
Options for P2P networking and discovery.disable-discovery
Disable the discovery service- Syntax
-d, --disable-discoverydisable-dns-discovery
Disable the DNS discovery- Syntax
--disable-dns-discoverydisable-discv4-discovery
Disable Discv4 discovery- Syntax
--disable-discv4-discoverydisable-discv5-discovery
Disable Discv5 discovery- Syntax
--disable-discv5-discoverydisable-nat
Disable Nat discovery- Syntax
--disable-natdiscovery.addr
The UDP address to use for devp2p peer discovery version 4- Syntax
- Default
--discovery.addr <DISCOVERY_ADDR>discovery.port
The UDP port to use for devp2p peer discovery version 4- Syntax
- Default
--discovery.port <DISCOVERY_PORT>discovery.v5.addr
The UDP IPv4 address to use for devp2p peer discovery version 5. Overwritten byRLPx address, if it’s also IPv4
- Syntax
--discovery.v5.addr <DISCOVERY_V5_ADDR>discovery.v5.addr.ipv6
The UDP IPv6 address to use for devp2p peer discovery version 5. Overwritten byRLPx address, if it’s also IPv6
- Syntax
--discovery.v5.addr.ipv6 <DISCOVERY_V5_ADDR_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
- Syntax
- Default
--discovery.v5.port <DISCOVERY_V5_PORT>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
- Syntax
- Default
--discovery.v5.port.ipv6 <DISCOVERY_V5_PORT_IPV6>discovery.v5.lookup-interval
The interval in seconds at which to carry out periodic lookup queries, for the whole run of the program- Syntax
- Default
--discovery.v5.lookup-interval <DISCOVERY_V5_LOOKUP_INTERVAL>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- Syntax
- Default
--discovery.v5.bootstrap.lookup-interval <DISCOVERY_V5_BOOTSTRAP_LOOKUP_INTERVAL>discovery.v5.bootstrap.lookup-countdown
The number of times to carry out boost lookup queries at bootstrap- Syntax
- Default
--discovery.v5.bootstrap.lookup-countdown <DISCOVERY_V5_BOOTSTRAP_LOOKUP_COUNTDOWN>trusted-peers
Comma separated enode URLs of trusted peers for P2P connections. —trusted-peers enode://[email protected]:30303- Syntax
--trusted-peers <TRUSTED_PEERS>trusted-only
Connect to or accept from trusted peers only- Syntax
--trusted-onlybootnodes
Comma separated enode URLs for P2P discovery bootstrap. Will fall back to a network-specific default if not specified.- Syntax
--bootnodes <BOOTNODES>dns-retries
Amount of DNS resolution requests retries to perform when peering- Syntax
- Default
--dns-retries <DNS_RETRIES>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.
- Syntax
--peers-file <FILE>identity
Custom node identity- Syntax
- Default
--identity <IDENTITY>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.- Syntax
--p2p-secret-key <PATH>p2p-secret-key-hex
Hex encoded secret key to use for this node. This will also deterministically set the peer ID. Cannot be used together with--p2p-secret-key.
- Syntax
--p2p-secret-key-hex <HEX>no-persist-peers
Do not persist peers.- Syntax
--no-persist-peersnat
NAT resolution method (any|none|upnp|publicip|extip:<IP>)- Syntax
- Default
--nat <NAT>addr
Network listening address- Syntax
- Default
--addr <ADDR>port
Network listening port- Syntax
- Default
--port <PORT>max-outbound-peers
Maximum number of outbound peers. default: 100- Syntax
--max-outbound-peers <MAX_OUTBOUND_PEERS>max-inbound-peers
Maximum number of inbound peers. default: 30- Syntax
--max-inbound-peers <MAX_INBOUND_PEERS>max-peers
Maximum number of total peers (inbound + outbound). Splits peers using approximately 2:1 inbound:outbound ratio. Cannot be used together with--max-outbound-peers or --max-inbound-peers.
- Syntax
--max-peers <COUNT>max-tx-reqs
Max concurrentGetPooledTransactions requests.
- Syntax
- Default
--max-tx-reqs <COUNT>max-tx-reqs-peer
Max concurrentGetPooledTransactions requests per peer.
- Syntax
- Default
--max-tx-reqs-peer <COUNT>max-seen-tx-history
Max number of seen transactions to remember per peer. Default is 320 transaction hashes.- Syntax
- Default
--max-seen-tx-history <COUNT>max-pending-imports
Max number of transactions to import concurrently.- Syntax
- Default
--max-pending-imports <COUNT>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.- Syntax
- Default
--pooled-tx-response-soft-limit <BYTES>pooled-tx-pack-soft-limit
Experimental, for usage in research. Sets the max accumulated byte size of transactions to request in one request. SinceRLPx 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.
- Syntax
- Default
--pooled-tx-pack-soft-limit <BYTES>max-tx-pending-fetch
Max capacity of cache of hashes for transactions pending fetch.- Syntax
- Default
--max-tx-pending-fetch <COUNT>tx-channel-memory-limit
Memory limit (in bytes) for the channel that buffers transaction events flowing from the network manager to the transactions manager. When the budget is exhausted, new events are dropped (see metrictotal_dropped_tx_events_at_full_capacity). Acts as a backstop against unbounded memory growth under sustained P2P transaction flooding.
- Syntax
- Default
--tx-channel-memory-limit <BYTES>net-if.experimental
Name of network interface used to communicate with peers. If flag is set, but no value is passed, the default interface for dockereth0 is tried.
- Syntax
--net-if.experimental <IF_NAME>tx-propagation-policy
Transaction Propagation Policy The policy determines which peers transactions are gossiped to.- Syntax
- Default
--tx-propagation-policy <TX_PROPAGATION_POLICY>tx-ingress-policy
Transaction ingress policy Determines which peers’ transactions are accepted over P2P.- Syntax
- Default
--tx-ingress-policy <TX_INGRESS_POLICY>disable-tx-gossip
Disable transaction pool gossip Disables gossiping of transactions in the mempool to peers. This can be omitted for personal nodes, though providers should always opt to enable this flag.- Syntax
--disable-tx-gossiptx-propagation-mode
Sets the transaction propagation mode by determining how new pending transactions are propagated to other peers in full. Examples: sqrt, all, max:10- Syntax
- Default
--tx-propagation-mode <PROPAGATION_MODE>required-block-hashes
Comma separated list of required block hashes or block number=hash pairs. Peers that don’t have these blocks will be filtered out. Format: hash orblock_number=hash (e.g., 23115201=0x1234…)
- Syntax
--required-block-hashes <REQUIRED_BLOCK_HASHES>network-id
Optional network ID to override the chain specification’s network ID for P2P connections- Syntax
--network-id <NETWORK_ID>eth-max-message-size
Maximum allowed ETH message size in bytes. Default is 10 MiB- Syntax
--eth-max-message-size <BYTES>netrestrict
Restrict network communication to the given IP networks (CIDR masks). Comma separated list of CIDR network specifications. Only peers with IP addresses within these ranges will be allowed to connect. Example: —netrestrict “192.168.0.0/16,10.0.0.0/8”- Syntax
--netrestrict <NETRESTRICT>enforce-enr-fork-id
Enforce EIP-868 ENR fork ID validation for discovered peers. When enabled, peers discovered without a confirmed fork ID are not added to the peer set until their fork ID is verified via EIP-868 ENR request. This filters out peers from other networks that pollute the discovery table.- Syntax
--enforce-enr-fork-idRPC
Options for HTTP, WebSocket, and IPC RPC servers.http
Enable the HTTP-RPC server- Syntax
--httphttp.addr
Http server address to listen on- Syntax
- Default
--http.addr <HTTP_ADDR>http.port
Http server port to listen on- Syntax
- Default
--http.port <HTTP_PORT>http.disable-compression
Disable compression for HTTP responses- Syntax
--http.disable-compressionhttp.api
Rpc Modules to be configured for the HTTP server- Syntax
- Possible Values
--http.api <HTTP_API>http.corsdomain
Http Corsdomain to allow request from- Syntax
--http.corsdomain <HTTP_CORSDOMAIN>ws
Enable the WS-RPC server- Syntax
--wsws.addr
Ws server address to listen on- Syntax
- Default
--ws.addr <WS_ADDR>ws.port
Ws server port to listen on- Syntax
- Default
--ws.port <WS_PORT>ws.origins
Origins from which to acceptWebSocket requests
- Syntax
--ws.origins <ws.origins>ws.api
Rpc Modules to be configured for the WS server- Syntax
- Possible Values
--ws.api <WS_API>ipcdisable
Disable the IPC-RPC server- Syntax
--ipcdisableipcpath
Filename for IPC socket/pipe within the datadir- Syntax
- Default
--ipcpath <IPCPATH>ipc.permissions
Set the permissions for the IPC socket file, in octal format. If not specified, the permissions will be set by the system’s umask.- Syntax
--ipc.permissions <IPC_SOCKET_PERMISSIONS>authrpc.addr
Auth server address to listen on- Syntax
- Default
--authrpc.addr <AUTH_ADDR>authrpc.port
Auth server port to listen on- Syntax
- Default
--authrpc.port <AUTH_PORT>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<DIR>/<CHAIN_ID>/jwt.hex. For mainnet this would be ~/.local/share/reth/mainnet/jwt.hex by default.
- Syntax
--authrpc.jwtsecret <PATH>auth-ipc
Enable auth engine API over IPC- Syntax
--auth-ipcauth-ipc.path
Filename for auth IPC socket/pipe within the datadir- Syntax
- Default
--auth-ipc.path <AUTH_IPC_PATH>disable-auth-server
Disable the auth/engine API server. This will prevent the authenticated engine-API server from starting. Use this if you’re running a node that doesn’t need to serve engine API requests.- Syntax
--disable-auth-serverrpc.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.
- Syntax
--rpc.jwtsecret <HEX>rpc.max-request-size
Set the maximum RPC request payload size for both HTTP and WS in megabytes- Syntax
- Default
--rpc.max-request-size <RPC_MAX_REQUEST_SIZE>rpc.max-response-size
Set the maximum RPC response payload size for both HTTP and WS in megabytes- Syntax
- Default
- Aliases
--rpc.max-response-size <RPC_MAX_RESPONSE_SIZE>rpc.max-subscriptions-per-connection
Set the maximum concurrent subscriptions per connection- Syntax
- Default
--rpc.max-subscriptions-per-connection <RPC_MAX_SUBSCRIPTIONS_PER_CONNECTION>rpc.max-connections
Maximum number of RPC server connections- Syntax
- Default
--rpc.max-connections <COUNT>rpc.max-tracing-requests
Maximum number of concurrent tracing requests. By default this chooses a sensible value based on the number of available cores. Tracing requests are generally CPU bound. Choosing a value that is higher than the available CPU cores can have a negative impact on the performance of the node and affect the node’s ability to maintain sync.- Syntax
- Default
--rpc.max-tracing-requests <COUNT>rpc.max-blocking-io-requests
Maximum number of concurrent blocking IO requests. Blocking IO requests includeeth_call, eth_estimateGas, and similar methods that require EVM execution. These are spawned as blocking tasks to avoid blocking the async runtime.
- Syntax
- Default
--rpc.max-blocking-io-requests <COUNT>rpc.max-trace-filter-blocks
Maximum number of blocks fortrace_filter requests
- Syntax
- Default
--rpc.max-trace-filter-blocks <COUNT>rpc.max-blocks-per-filter
Maximum number of blocks that could be scanned per filter request. (0 = entire chain)- Syntax
- Default
--rpc.max-blocks-per-filter <COUNT>rpc.max-logs-per-response
Maximum number of logs that can be returned in a single response. (0 = no limit)- Syntax
- Default
--rpc.max-logs-per-response <COUNT>rpc.gascap
Maximum gas limit foreth_call and call tracing RPC methods
- Syntax
- Default
--rpc.gascap <GAS_CAP>rpc.evm-memory-limit
Maximum memory the EVM can allocate per RPC request- Syntax
- Default
--rpc.evm-memory-limit <MEMORY_LIMIT>rpc.txfeecap
Maximum eth transaction fee (in ether) that can be sent via the RPC APIs (0 = no cap)- Syntax
- Default
--rpc.txfeecap <TX_FEE_CAP>rpc.max-simulate-blocks
Maximum number of blocks foreth_simulateV1 call
- Syntax
- Default
--rpc.max-simulate-blocks <BLOCKS_COUNT>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 totip - window)
- Syntax
- Default
--rpc.eth-proof-window <RPC_ETH_PROOF_WINDOW>rpc.proof-permits
Maximum number of concurrent getproof requests- Syntax
- Default
--rpc.proof-permits <COUNT>rpc.pending-block
Configures the pending block behavior for RPC responses. Options: full (include all transactions), empty (header only), none (disable pending blocks).- Syntax
- Default
--rpc.pending-block <KIND>rpc.forwarder
Endpoint to forward transactions to- Syntax
--rpc.forwarder <FORWARDER>builder.disallow
Path to file containing disallowed addresses, json-encoded list of strings. Block validation API will reject blocks containing transactions from these addresses- Syntax
--builder.disallow <PATH>Builder
Options for the payload builder.builder.extradata
Block extra data set by the payload builder. If the value is a0x-prefixed hex string, it is decoded into raw bytes. Otherwise, the raw UTF-8 bytes of the string are used.
- Syntax
- Default
--builder.extradata <EXTRA_DATA>builder.gaslimit
Target gas limit for built blocks- Syntax
--builder.gaslimit <GAS_LIMIT>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 withms: * 50ms -> 50 milliseconds * 1 -> 1 second
- Syntax
- Default
--builder.interval <DURATION>builder.deadline
The deadline for when the payload builder job should resolve- Syntax
- Default
--builder.deadline <SECONDS>builder.max-tasks
Maximum number of tasks to spawn for building a payload- Syntax
- Default
--builder.max-tasks <MAX_PAYLOAD_TASKS>builder.max-blobs
Maximum number of blobs to include per block- Syntax
--builder.max-blobs <COUNT>RPC State Cache
Options for the RPC state cache.rpc-cache.max-blocks
Max number of blocks in cache- Syntax
- Default
--rpc-cache.max-blocks <MAX_BLOCKS>rpc-cache.max-receipts
Max number receipts in cache- Syntax
- Default
--rpc-cache.max-receipts <MAX_RECEIPTS>rpc-cache.max-headers
Max number of headers in cache- Syntax
- Default
--rpc-cache.max-headers <MAX_HEADERS>rpc-cache.max-concurrent-db-requests
Max number of concurrent database requests- Syntax
- Default
--rpc-cache.max-concurrent-db-requests <MAX_CONCURRENT_DB_REQUESTS>rpc-cache.max-cached-tx-hashes
Maximum number of transaction hashes to cache for transaction lookups- Syntax
- Default
--rpc-cache.max-cached-tx-hashes <MAX_CACHED_TX_HASHES>Gas Price Oracle
Options for the Gas Price Oracle.gpo.blocks
Number of recent blocks to check for gas price- Syntax
- Default
--gpo.blocks <BLOCKS>gpo.ignoreprice
Gas Price below which gpo will ignore transactions- Syntax
- Default
--gpo.ignoreprice <IGNORE_PRICE>gpo.maxprice
Maximum transaction priority fee(or gasprice before London Fork) to be recommended by gpo- Syntax
- Default
--gpo.maxprice <MAX_PRICE>gpo.percentile
The percentile of gas prices to use for the estimate- Syntax
- Default
--gpo.percentile <PERCENTILE>gpo.default-suggested-fee
The default gas price to use if there are no blocks to use- Syntax
--gpo.default-suggested-fee <DEFAULT_SUGGESTED_FEE>rpc.send-raw-transaction-sync-timeout
Timeout forsend_raw_transaction_sync RPC method
- Syntax
- Default
--rpc.send-raw-transaction-sync-timeout <SECONDS>testing.skip-invalid-transactions
Skip invalid transactions intesting_buildBlockV1 instead of failing.
When enabled, transactions that fail execution will be skipped, and all subsequent transactions from the same sender will also be skipped.
- Syntax
--testing.skip-invalid-transactionsrpc.force-blob-sidecar-upcasting
Force upcasting EIP-4844 blob sidecars to EIP-7594 format when Osaka is active. When enabled, blob transactions submitted viaeth_sendRawTransaction with EIP-4844 sidecars will be automatically converted to EIP-7594 format if the next block is Osaka. By default this is disabled, meaning transactions are submitted as-is.
- Syntax
--rpc.force-blob-sidecar-upcastingTxPool
Options for the transaction pool.txpool.pending-max-count
Max number of transaction in the pending sub-pool- Syntax
- Default
--txpool.pending-max-count <PENDING_MAX_COUNT>txpool.pending-max-size
Max size of the pending sub-pool in megabytes- Syntax
- Default
--txpool.pending-max-size <PENDING_MAX_SIZE>txpool.basefee-max-count
Max number of transaction in the basefee sub-pool- Syntax
- Default
--txpool.basefee-max-count <BASEFEE_MAX_COUNT>txpool.basefee-max-size
Max size of the basefee sub-pool in megabytes- Syntax
- Default
--txpool.basefee-max-size <BASEFEE_MAX_SIZE>txpool.queued-max-count
Max number of transaction in the queued sub-pool- Syntax
- Default
--txpool.queued-max-count <QUEUED_MAX_COUNT>txpool.queued-max-size
Max size of the queued sub-pool in megabytes- Syntax
- Default
--txpool.queued-max-size <QUEUED_MAX_SIZE>txpool.blobpool-max-count
Max number of transaction in the blobpool- Syntax
- Default
--txpool.blobpool-max-count <BLOBPOOL_MAX_COUNT>txpool.blobpool-max-size
Max size of the blobpool in megabytes- Syntax
- Default
--txpool.blobpool-max-size <BLOBPOOL_MAX_SIZE>txpool.blob-cache-size
Max number of entries for the in memory cache of the blob store- Syntax
--txpool.blob-cache-size <BLOB_CACHE_SIZE>txpool.disable-blobs-support
Disable EIP-4844 blob transaction support- Syntax
--txpool.disable-blobs-supporttxpool.max-account-slots
Max number of executable transaction slots guaranteed per account- Syntax
- Default
--txpool.max-account-slots <MAX_ACCOUNT_SLOTS>txpool.pricebump
Price bump (in %) for the transaction pool underpriced check- Syntax
- Default
--txpool.pricebump <PRICE_BUMP>txpool.minimal-protocol-fee
Minimum base fee required by the protocol- Syntax
- Default
--txpool.minimal-protocol-fee <MINIMAL_PROTOCOL_BASEFEE>txpool.minimum-priority-fee
Minimum priority fee required for transaction acceptance into the pool. Transactions with priority fee below this value will be rejected- Syntax
--txpool.minimum-priority-fee <MINIMUM_PRIORITY_FEE>txpool.gas-limit
The default enforced gas limit for transactions entering the pool- Syntax
- Default
--txpool.gas-limit <ENFORCED_GAS_LIMIT>txpool.max-tx-gas
Maximum gas limit for individual transactions. Transactions exceeding this limit will be rejected by the transaction pool- Syntax
--txpool.max-tx-gas <MAX_TX_GAS_LIMIT>blobpool.pricebump
Price bump percentage to replace an already existing blob transaction- Syntax
- Default
--blobpool.pricebump <BLOB_TRANSACTION_PRICE_BUMP>txpool.max-tx-input-bytes
Max size in bytes of a single transaction allowed to enter the pool- Syntax
- Default
--txpool.max-tx-input-bytes <MAX_TX_INPUT_BYTES>txpool.max-cached-entries
The maximum number of blobs to keep in the in memory blob cache- Syntax
- Default
--txpool.max-cached-entries <MAX_CACHED_ENTRIES>txpool.nolocals
Flag to disable local transaction exemptions- Syntax
--txpool.nolocalstxpool.locals
Flag to allow certain addresses as local- Syntax
--txpool.locals <LOCALS>txpool.no-local-transactions-propagation
Flag to toggle local transaction propagation- Syntax
--txpool.no-local-transactions-propagationtxpool.additional-validation-tasks
Number of additional transaction validation tasks to spawn- Syntax
- Default
--txpool.additional-validation-tasks <ADDITIONAL_VALIDATION_TASKS>txpool.max-pending-txns
Maximum number of pending transactions from the network to buffer- Syntax
- Default
--txpool.max-pending-txns <PENDING_TX_LISTENER_BUFFER_SIZE>txpool.max-new-txns
Maximum number of new transactions to buffer- Syntax
- Default
--txpool.max-new-txns <NEW_TX_LISTENER_BUFFER_SIZE>txpool.max-new-pending-txs-notifications
How many new pending transactions to buffer and send to in progress pending transaction iterators- Syntax
- Default
--txpool.max-new-pending-txs-notifications <MAX_NEW_PENDING_TXS_NOTIFICATIONS>txpool.lifetime
Maximum amount of time non-executable transaction are queued- Syntax
- Default
--txpool.lifetime <DURATION>txpool.transactions-backup
Path to store the local transaction backup at, to survive node restarts- Syntax
--txpool.transactions-backup <PATH>txpool.disable-transactions-backup
Disables transaction backup to disk on node shutdown- Syntax
--txpool.disable-transactions-backuptxpool.max-batch-size
Max batch size for transaction pool insertions- Syntax
- Default
--txpool.max-batch-size <MAX_BATCH_SIZE>Debug
Options for debugging.debug.terminate
Flag indicating whether the node should be terminated after the pipeline sync- Syntax
--debug.terminatedebug.tip
Set the chain tip manually for testing purposes. NOTE: This is a temporary flag- Syntax
--debug.tip <TIP>debug.max-block
Runs the sync only up to the specified block- Syntax
--debug.max-block <MAX_BLOCK>debug.etherscan
Runs a fake consensus client that advances the chain using recent block hashes on Etherscan. If specified, requires anETHERSCAN_API_KEY environment variable
- Syntax
--debug.etherscan [<ETHERSCAN_API_URL>]debug.rpc-consensus-url
Runs a fake consensus client using blocks fetched from an RPC endpoint. Supports both HTTP andWebSocket endpoints - WebSocket endpoints will use subscriptions, while HTTP endpoints will poll for new blocks
- Syntax
--debug.rpc-consensus-url <RPC_URL>debug.skip-fcu
If provided, the engine will skipn consecutive FCUs
- Syntax
--debug.skip-fcu <SKIP_FCU>debug.skip-new-payload
If provided, the engine will skipn consecutive new payloads
- Syntax
--debug.skip-new-payload <SKIP_NEW_PAYLOAD>debug.reorg-frequency
If provided, the chain will be reorged at specified frequency- Syntax
--debug.reorg-frequency <REORG_FREQUENCY>debug.reorg-depth
The reorg depth for chain reorgs- Syntax
--debug.reorg-depth <REORG_DEPTH>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- Syntax
--debug.engine-api-store <PATH>debug.invalid-block-hook
Determines which type of invalid block hook to install Example:witness,prestate
- Syntax
- Default
- Possible Values
--debug.invalid-block-hook <INVALID_BLOCK_HOOK>debug.healthy-node-rpc-url
The RPC URL of a healthy node to use for comparing invalid block hook results against. Debug setting that enables execution witness comparison for troubleshooting bad blocks. When enabled, the node will collect execution witnesses from the specified source and compare them against local execution when a bad block is encountered, helping identify discrepancies in state execution.- Syntax
--debug.healthy-node-rpc-url <URL>ethstats
The URL of the ethstats server to connect to. Example:nodename:secret@host:port
- Syntax
--ethstats <ETHSTATS>debug.startup-sync-state-idle
Set the node to idle state when the backfill is not running. This makes theeth_syncing RPC return “Idle” when the node has just started or finished the backfill, but did not yet receive any new blocks.
- Syntax
--debug.startup-sync-state-idleDatabase
Options for the 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
- Syntax
--db.log-level <LOG_LEVEL>db.exclusive
Open environment in exclusive/monopolistic mode. Makes it possible to open a database on an NFS volume- Syntax
- Possible Values
--db.exclusive <EXCLUSIVE>db.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.- Syntax
--db.max-size <MAX_SIZE>db.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.- Syntax
--db.page-size <PAGE_SIZE>db.growth-step
Database growth step (e.g., 4GB, 4KB)- Syntax
--db.growth-step <GROWTH_STEP>db.read-transaction-timeout
Read transaction timeout in seconds, 0 means no timeout- Syntax
--db.read-transaction-timeout <READ_TRANSACTION_TIMEOUT>db.max-readers
Maximum number of readers allowed to access the database concurrently- Syntax
--db.max-readers <MAX_READERS>db.sync-mode
Controls how aggressively the database synchronizes data to disk- Syntax
--db.sync-mode <SYNC_MODE>db.rocksdb-block-cache-size
RocksDB block cache size (e.g., 512MB, 4GB).
Controls the size of the in-memory LRU cache for decompressed RocksDB blocks. A larger cache reduces repeated decompression of hot blocks, improving read performance for history lookups.
- Syntax
--db.rocksdb-block-cache-size <ROCKSDB_BLOCK_CACHE_SIZE>Dev testnet
Options for running a local development 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.- Syntax
--devdev.block-max-transactions
How many transactions to mine per block- Syntax
--dev.block-max-transactions <BLOCK_MAX_TRANSACTIONS>dev.block-time
Interval between blocks. Parses strings using [humantime::parse_duration] —dev.block-time 12s
- Syntax
--dev.block-time <BLOCK_TIME>dev.payload-wait-time
Time to wait after initiating payload building before resolving. Introduces a sleep betweenfork_choice_updated and resolve_kind in the local miner, giving the payload job time for multiple rebuild attempts with new transactions from the pool.
Parses strings using [humantime::parse_duration] —dev.payload-wait-time 450ms
- Syntax
--dev.payload-wait-time <PAYLOAD_WAIT_TIME>dev.mnemonic
Derive dev accounts from a fixed mnemonic instead of random ones.- Syntax
- Default
--dev.mnemonic <MNEMONIC>Pruning
Options for data pruning.full
Run full node. Only the most recent [MINIMUM_UNWIND_SAFE_DISTANCE] block states are stored
- Syntax
--fullminimal
Run minimal storage mode with maximum pruning and smaller static files. This mode configures the node to use minimal disk space by: - Fully pruning sender recovery, transaction lookup, receipts - Leaving 10,064 blocks for account, storage history and block bodies - Using 10,000 blocks per static file segment- Syntax
--minimalprune.block-interval
Minimum pruning interval measured in blocks- Syntax
--prune.block-interval <BLOCK_INTERVAL>prune.sender-recovery.full
Prunes all sender recovery data- Syntax
--prune.sender-recovery.fullprune.sender-recovery.distance
Prune sender recovery data before thehead-N block number. In other words, keep last N + 1 blocks
- Syntax
--prune.sender-recovery.distance <BLOCKS>prune.sender-recovery.before
Prune sender recovery data before the specified block number. The specified block number is not pruned- Syntax
--prune.sender-recovery.before <BLOCK_NUMBER>prune.transaction-lookup.full
Prunes all transaction lookup data- Syntax
--prune.transaction-lookup.fullprune.transaction-lookup.distance
Prune transaction lookup data before thehead-N block number. In other words, keep last N + 1 blocks
- Syntax
--prune.transaction-lookup.distance <BLOCKS>prune.transaction-lookup.before
Prune transaction lookup data before the specified block number. The specified block number is not pruned- Syntax
--prune.transaction-lookup.before <BLOCK_NUMBER>prune.receipts.full
Prunes all receipt data- Syntax
--prune.receipts.fullprune.receipts.pre-merge
Prune receipts before the merge block- Syntax
--prune.receipts.pre-mergeprune.receipts.distance
Prune receipts before thehead-N block number. In other words, keep last N + 1 blocks
- Syntax
--prune.receipts.distance <BLOCKS>prune.receipts.before
Prune receipts before the specified block number. The specified block number is not pruned- Syntax
--prune.receipts.before <BLOCK_NUMBER>prune.receiptslogfilter
Configure receipts log filter. Format:<address>:<prune_mode> — where <prune_mode> can be full, distance:<blocks>, or before:<block_number>.
- Syntax
--prune.receiptslogfilter <FILTER_CONFIG>prune.account-history.full
Prunes all account history- Syntax
--prune.account-history.fullprune.account-history.distance
Prune account before thehead-N block number. In other words, keep last N + 1 blocks
- Syntax
--prune.account-history.distance <BLOCKS>prune.account-history.before
Prune account history before the specified block number. The specified block number is not pruned- Syntax
--prune.account-history.before <BLOCK_NUMBER>prune.storage-history.full
Prunes all storage history data- Syntax
--prune.storage-history.fullprune.storage-history.distance
Prune storage history before thehead-N block number. In other words, keep last N + 1 blocks
- Syntax
--prune.storage-history.distance <BLOCKS>prune.storage-history.before
Prune storage history before the specified block number. The specified block number is not pruned- Syntax
--prune.storage-history.before <BLOCK_NUMBER>prune.bodies.pre-merge
Prune bodies before the merge block- Syntax
--prune.bodies.pre-mergeprune.bodies.distance
Prune bodies before thehead-N block number. In other words, keep last N + 1 blocks
- Syntax
--prune.bodies.distance <BLOCKS>prune.bodies.before
Prune storage history before the specified block number. The specified block number is not pruned- Syntax
--prune.bodies.before <BLOCK_NUMBER>prune.minimum-distance
Minimum pruning distance from the tip. This controls the safety margin for reorgs and manual unwinds- Syntax
--prune.minimum-distance <BLOCKS>Engine
Engine API options.engine.persistence-threshold
Configure persistence threshold for the engine. This determines how many canonical blocks must be in-memory, ahead of the last persisted block, before flushing canonical blocks to disk again. To persist blocks as fast as the node receives them, set this value to zero. This will cause more frequent DB writes.- Syntax
- Default
--engine.persistence-threshold <PERSISTENCE_THRESHOLD>engine.persistence-backpressure-threshold
Configure the maximum canonical-minus-persisted gap before engine API processing stalls. This value must be greater than--engine.persistence-threshold.
- Syntax
- Default
--engine.persistence-backpressure-threshold <PERSISTENCE_BACKPRESSURE_THRESHOLD>engine.memory-block-buffer-target
Configure the target number of blocks to keep in memory- Syntax
- Default
--engine.memory-block-buffer-target <MEMORY_BLOCK_BUFFER_TARGET>engine.invalid-header-cache-hit-eviction-threshold
Configure how many cache hits an invalid header can accumulate before it is evicted and reprocessed. Set to0 to effectively disable the cache because entries are evicted on the first lookup.
- Syntax
- Default
--engine.invalid-header-cache-hit-eviction-threshold <INVALID_HEADER_HIT_EVICTION_THRESHOLD>engine.legacy-state-root
Enable legacy state root- Syntax
--engine.legacy-state-rootengine.disable-state-cache
Disable state cache- Syntax
--engine.disable-state-cacheengine.disable-prewarming
Disable parallel prewarming- Syntax
--engine.disable-prewarmingengine.state-provider-metrics
Enable state provider latency metrics. This allows the engine to collect and report stats about how long state provider calls took during execution, but this does introduce slight overhead to state provider calls- Syntax
--engine.state-provider-metricsengine.cross-block-cache-size
Configure the size of cross-block cache in megabytes- Syntax
- Default
--engine.cross-block-cache-size <CROSS_BLOCK_CACHE_SIZE>engine.state-root-task-compare-updates
Enable comparing trie updates from the state root task to the trie updates from the regular state root calculation- Syntax
--engine.state-root-task-compare-updatesengine.accept-execution-requests-hash
Enables accepting requests hash instead of an array of requests inengine_newPayloadV4
- Syntax
--engine.accept-execution-requests-hashengine.multiproof-chunk-size
Multiproof task chunk size for proof targets- Syntax
- Default
--engine.multiproof-chunk-size <MULTIPROOF_CHUNK_SIZE>engine.reserved-cpu-cores
Configure the number of reserved CPU cores for non-reth processes- Syntax
- Default
--engine.reserved-cpu-cores <RESERVED_CPU_CORES>engine.disable-precompile-cache
Disable precompile cache- Syntax
--engine.disable-precompile-cacheengine.state-root-fallback
Enable state root fallback, useful for testing- Syntax
--engine.state-root-fallbackengine.always-process-payload-attributes-on-canonical-head
Always process payload attributes and begin a payload build process even ifforkchoiceState.headBlockHash is already the canonical head or an ancestor. See TreeConfig::always_process_payload_attributes_on_canonical_head for more details.
Note: This is a no-op on OP Stack.
- Syntax
--engine.always-process-payload-attributes-on-canonical-headengine.allow-unwind-canonical-header
Allow unwinding canonical header to ancestor during forkchoice updates. SeeTreeConfig::unwind_canonical_header for more details
- Syntax
--engine.allow-unwind-canonical-headerengine.storage-worker-count
Configure the number of storage proof workers in the Tokio blocking pool. If not specified, defaults to 2x available parallelism- Syntax
--engine.storage-worker-count <STORAGE_WORKER_COUNT>engine.account-worker-count
Configure the number of account proof workers in the Tokio blocking pool. If not specified, defaults to the same count as storage workers- Syntax
--engine.account-worker-count <ACCOUNT_WORKER_COUNT>engine.prewarming-threads
Configure the number of prewarming threads. If not specified, defaults to available parallelism- Syntax
--engine.prewarming-threads <PREWARMING_THREADS>engine.disable-cache-metrics
Disable cache metrics recording, which can take up to 50ms with large cached state- Syntax
--engine.disable-cache-metricsengine.sparse-trie-max-hot-slots
LFU hot-slot capacity: max storage slots retained across sparse trie prune cycles- Syntax
- Default
--engine.sparse-trie-max-hot-slots <SPARSE_TRIE_MAX_HOT_SLOTS>engine.sparse-trie-max-hot-accounts
LFU hot-account capacity: max account addresses retained across sparse trie prune cycles- Syntax
- Default
--engine.sparse-trie-max-hot-accounts <SPARSE_TRIE_MAX_HOT_ACCOUNTS>engine.slow-block-threshold
Configure the slow block logging threshold in milliseconds. When set, blocks that take longer than this threshold to execute will be logged with detailed metrics including timing, state operations, and cache statistics. Set to 0 to log all blocks (useful for debugging/profiling). When not set, slow block logging is disabled (default).- Syntax
--engine.slow-block-threshold <DURATION>engine.disable-sparse-trie-cache-pruning
Fully disable sparse trie cache pruning. When set, the cached sparse trie is preserved without any node pruning or storage trie eviction between blocks. Useful for benchmarking the effects of retaining the full trie cache- Syntax
--engine.disable-sparse-trie-cache-pruningengine.state-root-task-timeout
Configure the timeout for the state root task before spawning a sequential fallback. If the state root task takes longer than this, a sequential computation starts in parallel and whichever finishes first is used. —engine.state-root-task-timeout 1s —engine.state-root-task-timeout 400ms Set to 0s to disable.- Syntax
- Default
--engine.state-root-task-timeout <STATE_ROOT_TASK_TIMEOUT>engine.share-execution-cache-with-payload-builder
Whether to share execution cache with the payload builder. When enabled, each payload job will get an instance of cross-block execution cache from the engine. Note: this should only be enabled if node would not be requested to process any payloads in parallel with payload building.- Syntax
--engine.share-execution-cache-with-payload-builderengine.share-sparse-trie-with-payload-builder
Whether to share the sparse trie with the payload builder. Replaces the payload builder’s blockingstate_root_with_updates() call with the sparse trie, computing the state root concurrently with transaction execution.
The engine and payload builder contend for the same trie — if a builder task is still running when newPayload arrives, the engine will block until the trie is stored back.
The builder also anchors the trie at the built block’s state root, so if the next newPayload is not on top of that block, the trie cache is invalidated and cleared.
- Syntax
--engine.share-sparse-trie-with-payload-builderengine.suppress-persistence-during-build
Suppress persistence while building a payload. When enabled, persistence cycles are deferred from the moment an FCU with payload attributes arrives until the next FCU clears the build. Useful on chains with short block times where persistence I/O can interfere with block building latency.- Syntax
--engine.suppress-persistence-during-buildengine.disable-bal-parallel-execution
Disable BAL (Block Access List, EIP-7928) based parallel execution. Defaults to disabled, falling back to transaction-based prewarming even when a BAL is available- Syntax
--engine.disable-bal-parallel-executionengine.disable-bal-parallel-state-root
Disable BAL-driven parallel state root computation. When set, the BAL hashed post state is not sent to the multiproof task for early parallel state root computation- Syntax
--engine.disable-bal-parallel-state-rootengine.disable-bal-batch-io
Disable BAL (Block Access List) storage prefetch IO during prewarming. When set, BAL storage slots are not read into the execution cache- Syntax
--engine.disable-bal-batch-ioERA
Options for ERA1 file import.era.enable
Enable import from ERA1 files- Syntax
--era.enableera.path
The path to a directory for import. The ERA1 files are read from the local directory parsing headers and bodies.- Syntax
--era.path <ERA_PATH>era.url
The URL to a remote host where the ERA1 files are hosted. The ERA1 files are read from the remote host using HTTP GET requests parsing headers and bodies.- Syntax
--era.url <ERA_URL>Static Files
Options for static file storage configuration.static-files.blocks-per-file.headers
Number of blocks per file for the headers segment- Syntax
--static-files.blocks-per-file.headers <BLOCKS_PER_FILE_HEADERS>static-files.blocks-per-file.transactions
Number of blocks per file for the transactions segment- Syntax
--static-files.blocks-per-file.transactions <BLOCKS_PER_FILE_TRANSACTIONS>static-files.blocks-per-file.receipts
Number of blocks per file for the receipts segment- Syntax
--static-files.blocks-per-file.receipts <BLOCKS_PER_FILE_RECEIPTS>static-files.blocks-per-file.transaction-senders
Number of blocks per file for the transaction senders segment- Syntax
--static-files.blocks-per-file.transaction-senders <BLOCKS_PER_FILE_TRANSACTION_SENDERS>static-files.blocks-per-file.account-change-sets
Number of blocks per file for the account changesets segment- Syntax
--static-files.blocks-per-file.account-change-sets <BLOCKS_PER_FILE_ACCOUNT_CHANGE_SETS>static-files.blocks-per-file.storage-change-sets
Number of blocks per file for the storage changesets segment- Syntax
--static-files.blocks-per-file.storage-change-sets <BLOCKS_PER_FILE_STORAGE_CHANGE_SETS>Storage
Options for storage backend selection.storage.v2
Enable V2 (hot/cold) storage layout for new databases. When set, new databases will be initialized with the V2 storage layout that separates hot and cold data. Existing databases always use the settings persisted in their metadata regardless of this flag.- Syntax
- Default
- Possible Values
--storage.v2 [<V2>]Rollup
Options for rollup configuration.rollup.sequencer
Endpoint for the sequencer mempool (can be both HTTP and WS)- Syntax
- Aliases
--rollup.sequencer <SEQUENCER>rollup.disable-tx-pool-gossip
Disable transaction pool gossip- Syntax
--rollup.disable-tx-pool-gossiprollup.compute-pending-block
By default the pending block equals the latest block to save resources and not leak txs from the tx-pool, this flag enables computing of the pending block from the tx-pool instead. Ifcompute_pending_block is not enabled, the payload builder will use the payload attributes from the latest block. Note that this flag is not yet functional.
- Syntax
--rollup.compute-pending-blockrollup.discovery.v4
enables discovery v4 if provided- Syntax
--rollup.discovery.v4rollup.enable-tx-conditional
Enable transaction conditional support on sequencer- Syntax
--rollup.enable-tx-conditionalrollup.sdm-enabled
Enable experimental SDM support for integration tests. SDM is not scheduled for Jovian or Karst; leave this disabled for production networks.- Syntax
--rollup.sdm-enabledrollup.interop-http
HTTP endpoint for the interop filter, used to validate the interop messages referenced by incoming transactions. When not set, interop transaction validation is disabled: a node that builds blocks will then include transactions carrying invalid interop messages, producing invalid blocks. It is only safe to leave this unset on nodes that do not build blocks.- Syntax
--rollup.interop-http <INTEROP_HTTP_URL>rollup.interop-safety-level
Safety level for interop filter validation.- Syntax
- Default
--rollup.interop-safety-level <INTEROP_SAFETY_LEVEL>rollup.sequencer-headers
Optional headers to use when connecting to the sequencer- Syntax
--rollup.sequencer-headers <SEQUENCER_HEADERS>rollup.historicalrpc
RPC endpoint for historical data- Syntax
--rollup.historicalrpc <HISTORICAL_HTTP_URL>min-suggested-priority-fee
Minimum suggested priority fee (tip) in wei, default1_000_000
- Syntax
- Default
--min-suggested-priority-fee <MIN_SUGGESTED_PRIORITY_FEE>flashblocks-url
A URL pointing to a secure websocket subscription that streams out flashblocks. If given, the flashblocks are received to build pending block. All request with “pending” block tag will use the pending state based on flashblocks.- Syntax
--flashblocks-url <FLASHBLOCKS_URL>flashblock-consensus
Enable flashblock consensus client to drive the chain forward When enabled, the flashblock consensus client will process flashblock sequences and submit them to the engine API to advance the chain. Requiresflashblocks_url to be set.
- Syntax
--flashblock-consensusproofs-history
If true, initialize external-proofs exex to save and serve trie nodes to provide proofs faster- Syntax
--proofs-historyproofs-history.storage-path
The path to the storage DB for proofs history- Syntax
--proofs-history.storage-path <PROOFS_HISTORY_STORAGE_PATH>proofs-history.window
The window to span blocks for proofs history. Value is the number of blocks. Default is 1 month of blocks based on 2 seconds block time. 30 * 24 * 60 * 60 / 2 =1_296_000
- Syntax
- Default
--proofs-history.window <PROOFS_HISTORY_WINDOW>proofs-history.verification-interval
Verification interval: perform full block execution every N blocks for data integrity. - 0: Disabled (Default) (always use fast path with pre-computed data from notifications) - 1: Always verify (always execute blocks, slowest) - N: Verify every Nth block (e.g., 100 = every 100 blocks) Periodic verification helps catch data corruption or consensus bugs while maintaining good performance. CLI:--proofs-history.verification-interval 100
- Syntax
- Default
--proofs-history.verification-interval <PROOFS_HISTORY_VERIFICATION_INTERVAL>proofs-history.storage-version
Storage schema version for proofs history. Defaults to v1. Usev2 to enable the changeset + history-bitmap schema, which supports history-aware reads at any block number within the proof window.
CLI: --proofs-history.storage-version v2
Possible values:
- v1: V1 storage schema (original single-table-per-domain layout). Default
- v2: V2 storage schema with changeset and history-bitmap tables, enabling history-aware reads at any block number within the proof window
- Syntax
- Default
--proofs-history.storage-version <PROOFS_HISTORY_STORAGE_VERSION>Logging
Options for logging.log.stdout.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
- Syntax
- Default
--log.stdout.format <FORMAT>log.stdout.filter
The filter to use for logs written to stdout- Syntax
- Default
--log.stdout.filter <FILTER>log.file.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
- Syntax
- Default
--log.file.format <FORMAT>log.file.filter
The filter to use for logs written to the log file- Syntax
- Default
--log.file.filter <FILTER>log.file.directory
The path to put log files in- Syntax
- Default
--log.file.directory <PATH>log.file.name
The prefix name of the log files- Syntax
- Default
--log.file.name <NAME>log.file.max-size
The maximum size (in MB) of one log file- Syntax
- Default
--log.file.max-size <SIZE>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 fornode command, 0 for non-node utility subcommands.
- Syntax
--log.file.max-files <COUNT>log.journald
Write logs to journald- Syntax
--log.journaldlog.journald.filter
The filter to use for logs written to journald- Syntax
- Default
--log.journald.filter <FILTER>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
- Syntax
- Default
--color <COLOR>logs-otlp
EnableOpentelemetry 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
- Syntax
- Environment Variable
--logs-otlp[=<URL>]logs-otlp.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 theRUST_LOG environment variable.
Example: —logs-otlp.filter=info,reth=debug
Defaults to INFO if not specified.
- Syntax
- Default
--logs-otlp.filter <FILTER>Display
Options for display and verbosity.verbosity
Set the minimum log level.- Syntax
-v, --verbosity...quiet
Silence all log output- Syntax
-q, --quietTracing
Options for OpenTelemetry tracing.tracing-otlp
EnableOpentelemetry 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
- Syntax
- Environment Variable
--tracing-otlp[=<URL>]tracing-otlp-protocol
OTLP transport protocol to use for exporting traces and logs.http: expects endpoint path to end with/v1/tracesor/v1/logs-grpc: expects endpoint without a path
- http: HTTP/Protobuf transport, port 4318, requires
/v1/tracespath - grpc: gRPC transport, port 4317
- Syntax
- Default
- Environment Variable
--tracing-otlp-protocol <PROTOCOL>tracing-otlp.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 theRUST_LOG environment variable.
Example: —tracing-otlp.filter=info,reth=debug,hyper_util=off
Defaults to TRACE if not specified.
- Syntax
- Default
--tracing-otlp.filter <FILTER>tracing-otlp.sample-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.- Syntax
- Environment Variable
--tracing-otlp.sample-ratio <RATIO>