Erigon 3.1 CLI Options
The Erigon 3 CLI has a wide range of flags that can be used to customize its behavior. Here's a breakdown of some of the flags, see Options for the full list:
General Options
These flags cover the general behavior and configuration of the Erigon client.
--datadir value: Specifies the data directory for the databases.- Default:
/home/usr/.local/share/erigon
- Default:
--ethash.dagdir value: Sets the directory to store the ethash mining DAGs.- Default:
/home/usr/.local/share/erigon-ethash
- Default:
--config value: Sets Erigon flags using a YAML/TOML file.--version, -v: Prints the version information.--help, -h: Displays help information.--chain value: Sets the name of the network to join.- Default:
mainnet
- Default:
--networkid value: Explicitly sets the network ID.- Default:
1
- Default:
--identity value: Sets a custom node name.--externalcl: Enables the external consensus layer.- Default:
false, means that Caplin is enabled.
- Default:
--override.osaka value: Manually specifies the Osaka fork time.- Default:
0
- Default:
--vmdebug: Records information for VM and contract debugging.- Default:
false
- Default:
--gdbme: Restarts Erigon under gdb for debugging.- Default:
false
- Default:
--ethstats value: The reporting URL for an ethstats service.--trusted-setup-file value: Absolute path to atrusted_setup.jsonfile.--persist.receipts, --experiment.persist.receipts.v2: Downloads historical receipts.- Default:
truefor minimal and full nodes,falsefor archive nodes
- Default:
Database and Caching
These flags control database performance and memory usage.
--db.pagesize value: Sets the fixed page size for the database.- Default:
16KB
- Default:
--db.size.limit value: Sets a runtime limit on the chaindata database size.- Default:
1TB
- Default:
--db.writemap: EnablesWRITE_MAPfor fast database writes.- Default:
true
- Default:
--db.read.concurrency value: Limits the number of parallel database reads.- Default:
1408
- Default:
--database.verbosity value: Enables internal database logs.- Default:
2
- Default:
--batchSize value: Sets the batch size for the execution stage.- Default:
512M
- Default:
--bodies.cache value: Sets the size limit for the block bodies cache.- Default:
268435456
- Default:
--state.cache value: Sets the amount of data to store in the StateCache.- Default:
0MB
- Default:
--sync.parallel-state-flushing: Enables parallel state flushing.- Default:
true
- Default:
Pruning and Snapshots
Flags for managing how old chain data is handled and stored.
--prune.mode value: Selects a pruning preset (full,archive,minimal,blocks).- Default:
"full"
- Default:
--prune.distance value: Keeps state history for the latestNblocks.- Default:
0
- Default:
--prune.distance.blocks value: Keeps block history for the latestNblocks.- Default:
0
- Default:
--prune.experimental.include-commitment-history, --experimental.commitment-history: Enables fastereth_getProoffor executed blocks.- Default:
false
- Default:
--snap.keepblocks: Keeps ancient blocks in the database for debugging.- Default:
false
- Default:
--snap.stop: Stops generating new snapshots.- Default:
false
- Default:
--snap.state.stop: Stops generating new state files.- Default:
false
- Default:
--snap.skip-state-snapshot-download: Skips state download and starts from genesis.- Default:
false
- Default:
Transaction Pool (TxPool)
Options for configuring the transaction pool.
--txpool.api.addr value: The TxPool API network address.- Default: Uses the value of
--private.api.addr
- Default: Uses the value of
--txpool.disable: Disables the internal transaction pool.- Default:
false
- Default:
--txpool.pricelimit value: Sets the minimum gas price for acceptance into the pool.- Default:
1
- Default:
--txpool.pricebump value: Sets the price bump percentage to replace a transaction.- Default:
10
- Default:
--txpool.blobpricebump value: Sets the price bump percentage for replacing a type-3 blob transaction.- Default:
100
- Default:
--txpool.accountslots value: Sets the number of executable transaction slots per account.- Default:
16
- Default:
--txpool.blobslots value: Sets the maximum number of blobs per account.- Default:
540
- Default:
--txpool.totalblobpoollimit value: Sets the total limit on the number of all blobs in the pool.- Default:
5400
- Default:
--txpool.globalslots value: Sets the maximum number of executable transaction slots for all accounts.- Default:
10000
- Default:
--txpool.globalbasefeeslots value: Sets the maximum number of non-executable transactions with insufficient base fees.- Default:
30000
- Default:
--txpool.globalqueue value: Sets the maximum number of non-executable transaction slots for all accounts.- Default:
30000
- Default:
--txpool.trace.senders value: A comma-separated list of addresses whose transactions will be traced.--txpool.commit.every value: Sets how often transactions are committed to storage.- Default:
15s
- Default:
--txpool.gossip.disable: Disables P2P gossip of transactions.- Default:
false
- Default:
Network and Peers
These flags manage network connectivity, peer discovery, and traffic control.
--port value: The main network listening port.- Default:
30303
- Default:
--p2p.protocol value: The version of theethP2P protocol.- Default:
68,67
- Default:
--p2p.allowed-ports value: A comma-separated list of allowed ports for different P2P protocols.- Default:
30303, 30304, 30305, 30306, 30307
- Default:
--nat value: The NAT port mapping mechanism.--nodiscover: Disables peer discovery.- Default:
false
- Default:
--v5disc: Enables the experimental RLPx V5 (Topic Discovery) mechanism.- Default:
false
- Default:
--netrestrict value: Restricts network communication to specific IP networks.--nodekey value: The P2P node key file.--nodekeyhex value: The P2P node key as a hexadecimal string.--discovery.dns value: Sets DNS discovery entry points.--bootnodes value: Comma-separated enode URLs for P2P discovery bootstrap.--staticpeers value: Comma-separated enode URLs to connect to.--trustedpeers value: Comma-separated enode URLs for trusted peers.--maxpeers value: The maximum number of network peers.- Default:
32
- Default:
RPC & API
Flags for configuring various RPC servers and their behavior.
--private.api.addr value: The internal gRPC API address for Erigon's components.- Default:
127.0.0.1:9090
- Default:
--private.api.ratelimit value: Limits the number of simultaneous internal API requests.- Default:
31872
- Default:
--http: Enables the JSON-RPC HTTP server.- Default:
true
- Default:
--http.enabled: An alternative flag to enable the HTTP server.- Default:
true
- Default:
--graphql: Enables the GraphQL endpoint.- Default:
false
- Default:
--http.addr value: The HTTP-RPC server listening interface.- Default:
localhost
- Default:
--http.port value: The HTTP-RPC server listening port.- Default:
8545
- Default:
--authrpc.addr value: The HTTP-RPC server listening interface for the Engine API.- Default:
localhost
- Default:
--authrpc.port value: The HTTP-RPC server listening port for the Engine API.- Default:
8551
- Default:
--authrpc.jwtsecret value: The path to the JWT secret file for the consensus layer.--http.compression: Enables compression over HTTP-RPC.- Default:
true
- Default:
--http.corsdomain value: A comma-separated list of domains for cross-origin requests.--http.vhosts value: A comma-separated list of virtual hostnames.- Default:
localhost
- Default:
--authrpc.vhosts value: A comma-separated list of virtual hostnames for the Engine API.- Default:
localhost
- Default:
--http.api value: The APIs offered over the HTTP-RPC interface.- Default:
eth,erigon,engine
- Default:
--ws: Enables the WS-RPC server.- Default:
false
- Default:
--ws.port value: The WS-RPC server listening port.- Default:
8546
- Default:
--ws.compression: Enables compression over WebSocket.- Default:
true
- Default:
--rpc.batch.concurrency value: Limits the number of goroutines for batch requests.- Default:
2
- Default:
--rpc.streaming.disable: Disables JSON streaming for heavy endpoints.- Default:
false
- Default:
--rpc.accessList value: Specifies a granular API allowlist.--rpc.gascap value: Sets a cap on gas usage foreth_call/estimateGas.- Default:
50000000
- Default:
--rpc.batch.limit value: Sets the maximum number of requests in a batch.- Default:
100
- Default:
--rpc.returndata.limit value: Sets the maximum return data size foreth_call.- Default:
100000
- Default:
--rpc.allow-unprotected-txs: Allows unprotected transactions via RPC.- Default:
false
- Default:
--rpc.txfeecap value: Sets a cap on transaction fees in ether.- Default:
1
- Default:
--rpc.slow value: Logs RPC requests slower than the specified threshold.- Default:
0s
- Default:
--rpc.evmtimeout value: The maximum time to wait for an EVM call.- Default:
5m0s
- Default:
--rpc.overlay.getlogstimeout value: The maximum time to wait foroverlay_getLogs.- Default:
5m0s
- Default:
--rpc.overlay.replayblocktimeout value: The maximum time to wait to replay a single block.- Default:
10s
- Default:
--rpc.subscription.filters.maxlogs value: Maximum logs to store per subscription.- Default:
0
- Default:
--rpc.subscription.filters.maxheaders value: Maximum block headers to store per subscription.- Default:
0
- Default:
--rpc.subscription.filters.maxtxs value: Maximum transactions to store per subscription.- Default:
0
- Default:
--rpc.subscription.filters.maxaddresses value: Maximum addresses per subscription to filter logs by.- Default:
0
- Default:
--rpc.subscription.filters.maxtopics value: Maximum topics per subscription to filter logs by.- Default:
0
- Default:
--http.timeouts.read value: Maximum duration for reading a request.- Default:
30s
- Default:
--http.timeouts.write value: Maximum duration before timing out a response write.- Default:
30m0s
- Default:
--http.timeouts.idle value: Maximum idle time for a connection with keep-alives enabled.- Default:
2m0s
- Default:
--authrpc.timeouts.read value: Maximum read duration for an Engine API request.- Default:
30s
- Default:
--authrpc.timeouts.write value: Maximum write duration for an Engine API response.- Default:
30m0s
- Default:
--authrpc.timeouts.idle value: Maximum idle time for an Engine API connection.- Default:
2m0s
- Default:
--healthcheck: Enables gRPC health checks.- Default:
false
- Default:
Logging and Profiling
Flags for controlling logging and performance profiling.
--log.json: Formats console logs with JSON.- Default:
false
- Default:
--log.console.json: Formats console logs with JSON.- Default:
false
- Default:
--log.dir.json: Formats file logs with JSON.- Default:
false
- Default:
--verbosity value: Sets the log level for console logs.- Default:
info
- Default:
--log.console.verbosity value: Sets the log level for console logs.- Default:
info
- Default:
--log.dir.disable: Disables disk logging.- Default:
false
- Default:
--log.dir.path value: The path to store user and error logs.--log.dir.prefix value: The file name prefix for logs stored on disk.--log.dir.verbosity value: Sets the log verbosity for disk logs.- Default:
info
- Default:
--log.delays: Enables block delay logging.- Default:
false
- Default:
--pprof: Enables the pprof HTTP server.- Default:
false
- Default:
--pprof.addr value: The pprof HTTP server listening interface.- Default:
127.0.0.1
- Default:
--pprof.port value: The pprof HTTP server listening port.- Default:
6060
- Default:
--pprof.cpuprofile value: Writes a CPU profile to a file.--trace value: Writes an execution trace to a file.--vmtrace value: Sets the provider tracer.--vmtrace.jsonconfig value: Sets the tracer's configuration.--metrics: Enables metrics collection and reporting.- Default:
false
- Default:
--metrics.addr value: The stand-alone metrics HTTP server listening interface.- Default:
127.0.0.1
- Default:
--metrics.port value: The metrics HTTP server listening port.- Default:
6061
- Default:
Consensus and Forks
Flags related to consensus mechanisms and network forks.
--clique.checkpoint value: The number of blocks after which to save the vote snapshot.- Default:
10
- Default:
--clique.snapshots value: The number of recent vote snapshots to keep in memory.- Default:
1024
- Default:
--clique.signatures value: The number of recent block signatures to keep in memory.- Default:
16384
- Default:
--clique.datadir value: The path to the clique database folder.--fakepow: Disables proof-of-work verification.- Default:
false
- Default:
--gpo.blocks value: The number of recent blocks to check for gas prices.- Default:
20
- Default:
--gpo.percentile value: The percentile of recent transaction gas prices to use for a suggested gas price.- Default:
60
- Default:
--proposer.disable: Disables the PoS proposer.- Default:
false
- Default:
--bor.heimdall value: The URL of the Heimdall service.- Default:
http://localhost:1317
- Default:
--bor.withoutheimdall: Runs without the Heimdall service.- Default:
false
- Default:
--bor.period: Overrides the bor block period.- Default:
false
- Default:
--bor.minblocksize: Ignores the bor block period and waits forblocksizetransactions.- Default:
false
- Default:
--polygon.pos.ssf: Enables Polygon PoS Single Slot Finality.- Default:
false
- Default:
--polygon.pos.ssf.block value: Enables Polygon PoS Single Slot Finality from a specific block.- Default:
0
- Default:
Sentry
Flags for configuring the Sentry component.
--sentry.api.addr value: A comma-separated list of sentry addresses.--sentry.log-peer-info: Logs detailed peer info when a peer connects or disconnects.- Default:
false
- Default:
--sentinel.addr value: The address for the sentinel component.- Default:
localhost
- Default:
--sentinel.port value: The port for the sentinel component.- Default:
7777
- Default:
--sentinel.bootnodes value: Comma-separated enode URLs for P2P discovery bootstrap for the sentinel.--sentinel.staticpeers value: Connects to comma-separated consensus static peers.
Downloader
Flags for controlling the downloader component.
--downloader.api.addr value: The downloader address.--downloader.disable.ipv4: Disables IPv4 for the downloader.- Default:
false
- Default:
--downloader.disable.ipv6: Disables IPv6 for the downloader.- Default:
false
- Default:
--no-downloader: Disables the downloader component.- Default:
false
- Default:
--downloader.verify: Verifies snapshots on startup.- Default:
false
- Default:
--sync.loop.throttle value: Sets the minimum time between sync loop starts.--sync.loop.block.limit value: Sets the maximum number of blocks to process per loop iteration.- Default:
5000
- Default:
--sync.loop.break.after value: Sets the last stage of the sync loop to run.--bad.block value: Marks a block as bad and forces a reorg.--webseed value: Comma-separated URLs for network support infrastructure.
Caplin (Consensus Layer)
Flags for configuring the Caplin consensus layer.
--caplin.discovery.addr value: The address for the Caplin DISCV5 protocol.- Default:
0.0.0.0
- Default:
--caplin.discovery.port value: The port for the Caplin DISCV5 protocol.- Default:
4000
- Default:
--caplin.discovery.tcpport value: The TCP port for the Caplin DISCV5 protocol.- Default:
4001
- Default:
--caplin.checkpoint-sync-url value: The checkpoint sync endpoint.--caplin.subscribe-all-topics: Subscribes to all gossip topics.- Default:
false
- Default:
--caplin.max-peer-count value: The maximum number of peers to connect to.- Default:
128
- Default:
--caplin.enable-upnp: Enables NAT porting for Caplin.- Default:
false
- Default:
--caplin.max-inbound-traffic-per-peer value: The maximum inbound traffic per second per peer.- Default:
1MB
- Default:
--caplin.max-outbound-traffic-per-peer value: The maximum outbound traffic per second per peer.- Default:
1MB
- Default:
--caplin.adaptable-maximum-traffic-requirements: Makes the node adaptable to traffic based on the number of validators.- Default:
true
- Default:
--caplin.blocks-archive: Enables backfilling for blocks.- Default:
false
- Default:
--caplin.blobs-archive: Enables backfilling for blobs.- Default:
false
- Default:
--caplin.states-archive: Enables the archival node for historical states.- Default:
false
- Default:
--caplin.blobs-immediate-backfill: Tells Caplin to immediately backfill blobs.- Default:
false
- Default:
--caplin.blobs-no-pruning: Disables blob pruning.- Default:
false
- Default:
--caplin.checkpoint-sync.disable: Disables checkpoint sync.- Default:
false
- Default:
--caplin.snapgen: Enables snapshot generation.- Default:
false
- Default:
--caplin.mev-relay-url value: The MEV relay endpoint.--caplin.validator-monitor: Enables Caplin validator monitoring metrics.- Default:
false
- Default:
--caplin.custom-config value: Sets a custom config for Caplin.--caplin.custom-genesis value: Sets a custom genesis for Caplin.--caplin.use-engine-api: Uses the Engine API for internal Caplin.- Default:
false
- Default:
Shutter Network Encrypted Transactions
Flags for configuring the Shutter Network encrypted transactions mempool.
--shutter: Enables the Shutter encrypted transactions mempool.- Default:
false
- Default:
--shutter.p2p.bootstrap.nodes value: Overrides the default P2P bootstrap nodes.--shutter.p2p.listen.port value: Overrides the default P2P listen port.- Default:
0
- Default:
Downloader
Flags for managing the Downloader for data synchronization.
--torrent.port value: The port to listen for the BitTorrent protocol.- Default:
42069
- Default:
--torrent.maxpeers value: An unused parameter.- Default:
100
- Default:
--torrent.conns.perfile value: The number of connections per file.- Default:
10
- Default:
--torrent.trackers.disable: Disables conventional BitTorrent trackers.- Default:
false
- Default:
--torrent.upload.rate value: The upload rate in bytes per second.- Default:
32mb
- Default:
--torrent.download.rate value: The download rate in bytes per second.--torrent.webseed.download.rate value: The download rate for webseeds.--torrent.verbosity value: Sets the verbosity level for BitTorrent logs.- Default:
1
- Default: