Configuring Erigon

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

  • --ethash.dagdir value: Sets the directory to store the ethash mining DAGs.

    • Default: /home/usr/.local/share/erigon-ethash

  • --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 networkarrow-up-right to join.

    • Default: mainnet

  • --networkid value: Explicitly sets the network ID.

    • Default: 1

  • --identity value: Sets a custom node name.

  • --externalcl: Enables the external consensus layer.

    • Default: false, means that Caplin is enabled.

  • --override.osaka value: Manually specifies the Osaka fork time.

    • Default: 0

  • --vmdebug: Records information for VM and contract debugging.

    • Default: false

  • --gdbme: Restarts Erigon under gdb for debugging.

    • Default: false

  • --ethstats value: The reporting URL for an ethstats service.

  • --trusted-setup-file value: Absolute path to a trusted_setup.json file.

  • --persist.receipts, --experiment.persist.receipts.v2: Downloads historical receipts.

    • Default: true for minimal and full nodes, false for archive nodes

Database and Caching

These flags control database performance and memory usage.

  • --db.pagesize value: Sets the fixed page size for the database.

    • Default: 16KB

  • --db.size.limit value: Sets a runtime limit on the chaindata database size.

    • Default: 1TB

  • --db.writemap: Enables WRITE_MAP for fast database writes.

    • Default: true

  • --db.read.concurrency value: Limits the number of parallel database reads.

    • Default: 1408

  • --database.verbosity value: Enables internal database logs.

    • Default: 2

  • --batchSize value: Sets the batch size for the execution stage.

    • Default: 512M

  • --bodies.cache value: Sets the size limit for the block bodies cache.

    • Default: 268435456

  • --state.cache value: Sets the amount of data to store in the StateCache.

    • Default: 0MB

  • --sync.parallel-state-flushing: Enables parallel state flushing.

    • Default: true

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"

  • --prune.distance value: Keeps state history for the latest N blocks.

    • Default: 0

  • --prune.distance.blocks value: Keeps block history for the latest N blocks.

    • Default: 0

  • --prune.experimental.include-commitment-history, --experimental.commitment-history: Enables faster eth_getProof for executed blocks.

    • Default: false

  • --snap.keepblocks: Keeps ancient blocks in the database for debugging.

    • Default: false

  • --snap.stop: Stops generating new snapshots.

    • Default: false

  • --snap.state.stop: Stops generating new state files.

    • Default: false

  • --snap.skip-state-snapshot-download: Skips state download and starts from genesis.

    • Default: false

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

  • --txpool.disable: Disables the internal transaction pool.

    • Default: false

  • --txpool.pricelimit value: Sets the minimum gas price for acceptance into the pool.

    • Default: 1

  • --txpool.pricebump value: Sets the price bump percentage to replace a transaction.

    • Default: 10

  • --txpool.blobpricebump value: Sets the price bump percentage for replacing a type-3 blob transaction.

    • Default: 100

  • --txpool.accountslots value: Sets the number of executable transaction slots per account.

    • Default: 16

  • --txpool.blobslots value: Sets the maximum number of blobs per account.

    • Default: 540

  • --txpool.totalblobpoollimit value: Sets the total limit on the number of all blobs in the pool.

    • Default: 5400

  • --txpool.globalslots value: Sets the maximum number of executable transaction slots for all accounts.

    • Default: 10000

  • --txpool.globalbasefeeslots value: Sets the maximum number of non-executable transactions with insufficient base fees.

    • Default: 30000

  • --txpool.globalqueue value: Sets the maximum number of non-executable transaction slots for all accounts.

    • Default: 30000

  • --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

  • --txpool.gossip.disable: Disables P2P gossip of transactions.

    • Default: false

Network and Peers

These flags manage network connectivity, peer discovery, and traffic control.

  • --port value: The main network listening port.

    • Default: 30303

  • --p2p.protocol value: The version of the eth P2P protocol.

    • Default: 68, 67

  • --p2p.allowed-ports value: A comma-separated list of allowed ports for different P2P protocols.

    • Default: 30303, 30304, 30305, 30306, 30307

  • --nat value: The NAT port mapping mechanism.

  • --nodiscover: Disables peer discovery.

    • Default: false

  • --v5disc: Enables the experimental RLPx V5 (Topic Discovery) mechanism.

    • Default: false

  • --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

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

  • --private.api.ratelimit value: Limits the number of simultaneous internal API requests.

    • Default: 31872

  • --http: Enables the JSON-RPC HTTP server.

    • Default: true

  • --http.enabled: An alternative flag to enable the HTTP server.

    • Default: true

  • --graphql: Enables the GraphQL endpoint.

    • Default: false

  • --http.addr value: The HTTP-RPC server listening interface.

    • Default: localhost

  • --http.port value: The HTTP-RPC server listening port.

    • Default: 8545

  • --authrpc.addr value: The HTTP-RPC server listening interface for the Engine API.

    • Default: localhost

  • --authrpc.port value: The HTTP-RPC server listening port for the Engine API.

    • Default: 8551

  • --authrpc.jwtsecret value: The path to the JWT secret file for the consensus layer.

  • --http.compression: Enables compression over HTTP-RPC.

    • Default: true

  • --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

  • --authrpc.vhosts value: A comma-separated list of virtual hostnames for the Engine API.

    • Default: localhost

  • --http.api value: The APIs offered over the HTTP-RPC interface.

    • Default: eth,erigon,engine

  • --ws: Enables the WS-RPC server.

    • Default: false

  • --ws.port value: The WS-RPC server listening port.

    • Default: 8546

  • --ws.compression: Enables compression over WebSocket.

    • Default: true

  • --rpc.batch.concurrency value: Limits the number of goroutines for batch requests.

    • Default: 2

  • --rpc.streaming.disable: Disables JSON streaming for heavy endpoints.

    • Default: false

  • --rpc.accessList value: Specifies a granular API allowlist.

  • --rpc.gascap value: Sets a cap on gas usage for eth_call/estimateGas.

    • Default: 50000000

  • --rpc.batch.limit value: Sets the maximum number of requests in a batch.

    • Default: 100

  • --rpc.returndata.limit value: Sets the maximum return data size for eth_call.

    • Default: 100000

  • --rpc.allow-unprotected-txs: Allows unprotected transactions via RPC.

    • Default: false

  • --rpc.txfeecap value: Sets a cap on transaction fees in ether.

    • Default: 1

  • --rpc.slow value: Logs RPC requests slower than the specified threshold.

    • Default: 0s

  • --rpc.evmtimeout value: The maximum time to wait for an EVM call.

    • Default: 5m0s

  • --rpc.overlay.getlogstimeout value: The maximum time to wait for overlay_getLogs.

    • Default: 5m0s

  • --rpc.overlay.replayblocktimeout value: The maximum time to wait to replay a single block.

    • Default: 10s

  • --rpc.subscription.filters.maxlogs value: Maximum logs to store per subscription.

    • Default: 0

  • --rpc.subscription.filters.maxheaders value: Maximum block headers to store per subscription.

    • Default: 0

  • --rpc.subscription.filters.maxtxs value: Maximum transactions to store per subscription.

    • Default: 0

  • --rpc.subscription.filters.maxaddresses value: Maximum addresses per subscription to filter logs by.

    • Default: 0

  • --rpc.subscription.filters.maxtopics value: Maximum topics per subscription to filter logs by.

    • Default: 0

  • --http.timeouts.read value: Maximum duration for reading a request.

    • Default: 30s

  • --http.timeouts.write value: Maximum duration before timing out a response write.

    • Default: 30m0s

  • --http.timeouts.idle value: Maximum idle time for a connection with keep-alives enabled.

    • Default: 2m0s

  • --authrpc.timeouts.read value: Maximum read duration for an Engine API request.

    • Default: 30s

  • --authrpc.timeouts.write value: Maximum write duration for an Engine API response.

    • Default: 30m0s

  • --authrpc.timeouts.idle value: Maximum idle time for an Engine API connection.

    • Default: 2m0s

  • --healthcheck: Enables gRPC health checks.

    • Default: false

Logging and Profiling

Flags for controlling logging and performance profiling.

  • --log.json: Formats console logs with JSON.

    • Default: false

  • --log.console.json: Formats console logs with JSON.

    • Default: false

  • --log.dir.json: Formats file logs with JSON.

    • Default: false

  • --verbosity value: Sets the log level for console logs.

    • Default: info

  • --log.console.verbosity value: Sets the log level for console logs.

    • Default: info

  • --log.dir.disable: Disables disk logging.

    • Default: false

  • --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

  • --log.delays: Enables block delay logging.

    • Default: false

  • --pprof: Enables the pprof HTTP server.

    • Default: false

  • --pprof.addr value: The pprof HTTP server listening interface.

    • Default: 127.0.0.1

  • --pprof.port value: The pprof HTTP server listening port.

    • Default: 6060

  • --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

  • --metrics.addr value: The stand-alone metrics HTTP server listening interface.

    • Default: 127.0.0.1

  • --metrics.port value: The metrics HTTP server listening port.

    • Default: 6061

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

  • --clique.snapshots value: The number of recent vote snapshots to keep in memory.

    • Default: 1024

  • --clique.signatures value: The number of recent block signatures to keep in memory.

    • Default: 16384

  • --clique.datadir value: The path to the clique database folder.

  • --fakepow: Disables proof-of-work verification.

    • Default: false

  • --gpo.blocks value: The number of recent blocks to check for gas prices.

    • Default: 20

  • --gpo.percentile value: The percentile of recent transaction gas prices to use for a suggested gas price.

    • Default: 60

  • --proposer.disable: Disables the PoS proposer.

    • Default: false

  • --bor.heimdall value: The URL of the Heimdall service.

    • Default: http://localhost:1317

  • --bor.withoutheimdall: Runs without the Heimdall service.

    • Default: false

  • --bor.period: Overrides the bor block period.

    • Default: false

  • --bor.minblocksize: Ignores the bor block period and waits for blocksize transactions.

    • Default: false

  • --polygon.pos.ssf: Enables Polygon PoS Single Slot Finality.

    • Default: false

  • --polygon.pos.ssf.block value: Enables Polygon PoS Single Slot Finality from a specific block.

    • Default: 0

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

  • --sentinel.addr value: The address for the sentinel component.

    • Default: localhost

  • --sentinel.port value: The port for the sentinel component.

    • Default: 7777

  • --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

  • --downloader.disable.ipv6: Disables IPv6 for the downloader.

    • Default: false

  • --no-downloader: Disables the downloader component.

    • Default: false

  • --downloader.verify: Verifies snapshots on startup.

    • Default: false

  • --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

  • --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

  • --caplin.discovery.port value: The port for the Caplin DISCV5 protocol.

    • Default: 4000

  • --caplin.discovery.tcpport value: The TCP port for the Caplin DISCV5 protocol.

    • Default: 4001

  • --caplin.checkpoint-sync-url value: The checkpoint sync endpoint.

  • --caplin.subscribe-all-topics: Subscribes to all gossip topics.

    • Default: false

  • --caplin.max-peer-count value: The maximum number of peers to connect to.

    • Default: 128

  • --caplin.enable-upnp: Enables NAT porting for Caplin.

    • Default: false

  • --caplin.max-inbound-traffic-per-peer value: The maximum inbound traffic per second per peer.

    • Default: 1MB

  • --caplin.max-outbound-traffic-per-peer value: The maximum outbound traffic per second per peer.

    • Default: 1MB

  • --caplin.adaptable-maximum-traffic-requirements: Makes the node adaptable to traffic based on the number of validators.

    • Default: true

  • --caplin.blocks-archive: Enables backfilling for blocks.

    • Default: false

  • --caplin.blobs-archive: Enables backfilling for blobs.

    • Default: false

  • --caplin.states-archive: Enables the archival node for historical states.

    • Default: false

  • --caplin.blobs-immediate-backfill: Tells Caplin to immediately backfill blobs.

    • Default: false

  • --caplin.blobs-no-pruning: Disables blob pruning.

    • Default: false

  • --caplin.checkpoint-sync.disable: Disables checkpoint sync.

    • Default: false

  • --caplin.snapgen: Enables snapshot generation.

    • Default: false

  • --caplin.mev-relay-url value: The MEV relay endpoint.

  • --caplin.validator-monitor: Enables Caplin validator monitoring metrics.

    • Default: false

  • --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

Shutter Network Encrypted Transactions

Flags for configuring the Shutter Network encrypted transactions mempool.

  • --shutter: Enables the Shutter encrypted transactions mempool.

    • Default: false

  • --shutter.p2p.bootstrap.nodes value: Overrides the default P2P bootstrap nodes.

  • --shutter.p2p.listen.port value: Overrides the default P2P listen port.

    • Default: 0

Downloader

Flags for managing the Downloader for data synchronization.

  • --torrent.port value: The port to listen for the BitTorrent protocol.

    • Default: 42069

  • --torrent.maxpeers value: An unused parameter.

    • Default: 100

  • --torrent.conns.perfile value: The number of connections per file.

    • Default: 10

  • --torrent.trackers.disable: Disables conventional BitTorrent trackers.

    • Default: false

  • --torrent.upload.rate value: The upload rate in bytes per second.

    • Default: 32mb

  • --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

Last updated

Was this helpful?