Skip to main content

CLI flags reference

Auto-generated reference

This page lists every CLI flag accepted by the Nitro node binary. For explanations, examples, and recommended configurations, see the curated guides:

Total flags: 634 across 23 namespaces.

Pass flags on the command line with -- prefix:

nitro --http.addr=0.0.0.0 --http.port=8547 --node.feed.input.url=wss://arb1.arbitrum.io/feed

Or set them in a JSON configuration file:

nitro --conf.file=/path/to/config.json

auth

Related guide: Configuration system

auth flags (5)
FlagTypeDefaultDescription
auth.addrstring127.0.0.1AUTH-RPC server listening interface
auth.apistrings[validation]APIs offered over the AUTH-RPC interface
auth.jwtsecretstring-Path to file holding JWT secret (32B hex)
auth.originsstrings[localhost]Origins from which to accept AUTH requests
auth.portint8549AUTH-RPC server listening port

blocks-reexecutor

Related guide: Configuration system

blocks-reexecutor flags (7)
FlagTypeDefaultDescription
blocks-reexecutor.blocksstring[[0,0]]json encoded list of block ranges in the form of start and end block numbers in a list of size 2
blocks-reexecutor.enablebool-enables re-execution of a range of blocks against historic state
blocks-reexecutor.min-blocks-per-threaduint-minimum number of blocks to execute per thread. When mode is random this acts as the size of random block range sample
blocks-reexecutor.modestringrandommode to run the blocks-reexecutor on. Valid modes full and random. full - execute all the blocks in the given range. random - execute a random sample range of blocks with in a given range
blocks-reexecutor.roomint2number of threads to parallelize blocks re-execution
blocks-reexecutor.trie-clean-limitint-memory allowance (MB) to use for caching trie nodes in memory
blocks-reexecutor.validate-multigasbool-if set, validate the sum of multi-gas dimensions match the single-gas

chain

Related guide: Configuration system

chain flags (9)
FlagTypeDefaultDescription
chain.dev-wallet.accountstringis first account in keystoreaccount to use
chain.dev-wallet.only-create-keybool-if true, creates new key then exits
chain.dev-wallet.passwordstringPASSWORD_NOT_SETwallet passphrase
chain.dev-wallet.pathnamestring-pathname for wallet
chain.dev-wallet.private-keystring-private key for wallet
chain.iduint-L2 chain ID (determines Arbitrum network)
chain.info-filesstrings-L2 chain info json files
chain.info-jsonstring-L2 chain info in json string format
chain.namestring-L2 chain name (determines Arbitrum network)

conf

Related guide: Configuration system

conf flags (10)
FlagTypeDefaultDescription
conf.dumpbool-print out currently active configuration file
conf.env-prefixstring-environment variables with given prefix will be loaded as configuration values
conf.filestrings-name of configuration file
conf.reload-intervalduration-how often to reload configuration (0=disable periodic reloading)
conf.s3.access-keystring-S3 access key
conf.s3.bucketstring-S3 bucket
conf.s3.object-keystring-S3 object key
conf.s3.regionstring-S3 region
conf.s3.secret-keystring-S3 secret key
conf.stringstring-configuration as JSON string

ensure-rollup-deployment

Related guide: Configuration system

ensure-rollup-deployment flags (1)
FlagTypeDefaultDescription
ensure-rollup-deploymentbooltruebefore starting the node, wait until the transaction that deployed rollup is finalized

file-logging

Related guide: Node tuning and monitoring

file-logging flags (8)
FlagTypeDefaultDescription
file-logging.buf-sizeint512size of intermediate log records buffer
file-logging.compressbooltrueenable compression of old log files
file-logging.enablebooltrueenable logging to file
file-logging.filestringnitro.logpath to log file
file-logging.local-timebool-if true: local time will be used in old log filename timestamps
file-logging.max-ageint-maximum number of days to retain old log files based on the timestamp encoded in their filename (0 = no limit)
file-logging.max-backupsint20maximum number of old log files to retain (0 = no limit)
file-logging.max-sizeint5log file size in Mb that will trigger log file rotation (0 = trigger disabled)

graphql

Related guide: Configuration system

graphql flags (3)
FlagTypeDefaultDescription
graphql.corsdomainstrings-Comma separated list of domains from which to accept cross origin requests (browser enforced)
graphql.enablebool-Enable graphql endpoint on the rpc endpoint
graphql.vhostsstrings[localhost]Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard

http

Related guide: Configuration system

http flags (10)
FlagTypeDefaultDescription
http.addrstring-HTTP-RPC server listening interface
http.apistrings[net,web3,eth,arb]APIs offered over the HTTP-RPC interface
http.corsdomainstrings-Comma separated list of domains from which to accept cross origin requests (browser enforced)
http.portint8547HTTP-RPC server listening port
http.rpcprefixstring-HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths
http.server-timeouts.idle-timeoutduration2m0sthe maximum amount of time to wait for the next request when keep-alives are enabled (http.Server.IdleTimeout)
http.server-timeouts.read-header-timeoutduration30sthe amount of time allowed to read the request headers (http.Server.ReadHeaderTimeout)
http.server-timeouts.read-timeoutduration30sthe maximum duration for reading the entire request (http.Server.ReadTimeout)
http.server-timeouts.write-timeoutduration30sthe maximum duration before timing out writes of the response (http.Server.WriteTimeout)
http.vhostsstrings[localhost]Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard

init

Related guide: Docker and CLI binaries

init flags (28)
FlagTypeDefaultDescription
init.accounts-per-syncuint100000during init - sync database every X accounts. Lower value for low-memory systems. 0 disables.
init.dev-initbool-init with dev data (1 account with balance) instead of file import
init.dev-init-addressstring-Address of dev-account. Leave empty to use the dev-wallet.
init.dev-init-blocknumuint-Number of preinit blocks. Must exist in ancient database.
init.dev-max-code-sizeuint-Max code size for dev accounts
init.download-pathstring-path to save temp downloaded file
init.download-pollduration1m0show long to wait between polling attempts
init.emptybool-init with empty state
init.forcebool-if true: in case database exists init code will be reexecuted and genesis block compared to database
init.genesis-json-filestring-path for genesis json file
init.import-filestring-path for json data to import
init.import-wasmbool-if set, import the wasm directory when downloading a database (contains executable code - only use with highly trusted source)
init.lateststring"pruned"if set, searches for the latest snapshot of the given kind (accepted values: "archive"
init.latest-basestringhttps://snapshot.arbitrum.foundation/base url used when searching for the latest
init.prunestring-pruning for a given use: "full" for full nodes serving RPC requests, or "validator" for validators
init.prune-bloom-sizeuint2048the amount of memory in megabytes to use for the pruning bloom filter (higher values prune better)
init.prune-parallel-storage-traversalbool-if true: use parallel pruning per account
init.prune-threadsint2the number of threads to use when pruning
init.prune-trie-clean-cacheint600amount of memory in megabytes to cache unchanged state trie nodes with when traversing state database during pruning
init.rebuild-local-wasmstring-rebuild local wasm database on boot if needed (otherwise-will be done lazily). Three modes are supported "auto"- (enabled by default) if any previous rebuilding attempt was successful then rebuilding is disabled else continues to rebuild, "force"- force rebuilding which would commence rebuilding despite the status of previous attempts, "false"- do not rebuild on startup (default "auto")
init.recreate-missing-state-fromuint-block number to start recreating missing states from (0 = disabled)
init.reorg-to-batchint-1rolls back the blockchain to a specified batch number
init.reorg-to-block-batchint-1rolls back the blockchain to the first batch at or before a given block number
init.reorg-to-message-batchint-1rolls back the blockchain to the first batch at or before a given message index
init.then-quitbool-quit after init is done
init.urlstring-url to download initialization data - will poll if download fails
init.validate-checksumbooltrueif true: validate the checksum after downloading the snapshot
init.validate-genesis-assertionbooltruetests genesis assertion posted on parent chain against the genesis block created on init

ipc

Related guide: Configuration system

ipc flags (1)
FlagTypeDefaultDescription
ipc.pathstring-Requested location to place the IPC endpoint. An empty path disables IPC.

log-level

Related guide: Configuration system

log-level flags (1)
FlagTypeDefaultDescription
log-levelstringINFOlog level, valid values are CRIT, ERROR, WARN, INFO, DEBUG, TRACE

log-type

Related guide: Configuration system

log-type flags (1)
FlagTypeDefaultDescription
log-typestringplaintextlog type (plaintext or json)

metrics

Related guide: Node tuning and monitoring

metrics flags (1)
FlagTypeDefaultDescription
metricsbool-enable metrics

metrics-server

Related guide: Node tuning and monitoring

metrics-server flags (3)
FlagTypeDefaultDescription
metrics-server.addrstring127.0.0.1metrics server address
metrics-server.portint6070metrics server port
metrics-server.update-intervalduration3smetrics server update interval

node

Related guide: Node tuning and monitoring

node flags (334)
FlagTypeDefaultDescription
node.batch-poster.check-batch-correctnessbooltruesetting this to true will run the batch against an inbox multiplexer and verifies that it produces the correct set of messages
node.batch-poster.compression-levelint11batch compression level
node.batch-poster.das-retention-periodduration360h0m0sIn AnyTrust mode, the period which DASes are requested to retain the stored batches.
node.batch-poster.data-poster.allocate-mempool-balancebooltrueif true, don't put transactions in the mempool that spend a total greater than the batch poster's balance
node.batch-poster.data-poster.blob-tx-replacement-timesdurationSlice[5m0s,10m0s,30m0s,1h0m0s,4h0m0s,8h0m0s,16h0m0s,22h0m0s]comma-separated list of durations since first posting a blob transaction to attempt a replace-by-fee
node.batch-poster.data-poster.disable-new-txbool-disable posting new transactions, data poster will still keep confirming existing batches
node.batch-poster.data-poster.elapsed-time-baseduration10m0sunit to measure the time elapsed since creation of transaction used for maximum fee cap calculation
node.batch-poster.data-poster.elapsed-time-importancefloat10weight given to the units of time elapsed used for maximum fee cap calculation
node.batch-poster.data-poster.external-signer.addressstring-external signer address
node.batch-poster.data-poster.external-signer.client-certstring-rpc client cert
node.batch-poster.data-poster.external-signer.client-private-keystring-rpc client private key
node.batch-poster.data-poster.external-signer.insecure-skip-verifybool-skip TLS certificate verification
node.batch-poster.data-poster.external-signer.methodstringeth_signTransactionexternal signer method
node.batch-poster.data-poster.external-signer.root-castring-external signer root CA
node.batch-poster.data-poster.external-signer.urlstring-external signer url
node.batch-poster.data-poster.legacy-storage-encodingbool-encodes items in a legacy way (as it was before dropping generics)
node.batch-poster.data-poster.max-blob-tx-tip-cap-gweifloat1the maximum tip cap to post EIP-4844 blob carrying transactions at
node.batch-poster.data-poster.max-fee-bid-multiple-bipsuint100000the maximum multiple of the current price to bid for a transaction's fees (may be exceeded due to min rbf increase, 0 = unlimited)
node.batch-poster.data-poster.max-fee-cap-formulastring-mathematical formula to calculate maximum fee cap gwei the result of which would be float64. This expression is expected to be evaluated please refer https://github.com/Knetic/govaluate/blob/master/MANUAL.md to find all available mathematical operators. Currently available variables to construct the formula are BacklogOfBatches, UrgencyGWei, ElapsedTime, ElapsedTimeBase, ElapsedTimeImportance, and TargetPriceGWei (default "((BacklogOfBatches _ UrgencyGWei) ** 2) + ((ElapsedTime/ElapsedTimeBase) ** 2) _ ElapsedTimeImportance + TargetPriceGWei")
node.batch-poster.data-poster.max-mempool-transactionsuint18the maximum number of transactions to have queued in the mempool at once (0 = unlimited)
node.batch-poster.data-poster.max-mempool-weightuint18the maximum number of weight (weight = min(1, tx.blobs)) to have queued in the mempool at once (0 = unlimited)
node.batch-poster.data-poster.max-queued-transactionsint-the maximum number of unconfirmed transactions to track at once (0 = unlimited)
node.batch-poster.data-poster.max-tip-cap-gweifloat1.2the maximum tip cap to post transactions at
node.batch-poster.data-poster.min-blob-tx-tip-cap-gweifloat1the minimum tip cap to post EIP-4844 blob carrying transactions at
node.batch-poster.data-poster.min-tip-cap-gweifloat0.05the minimum tip cap to post transactions at
node.batch-poster.data-poster.nonce-rbf-soft-confsuint1the maximum probable reorg depth, used to determine when a transaction will no longer likely need replaced-by-fee
node.batch-poster.data-poster.redis-signer.fallback-verification-keystring-a fallback key used for message verification
node.batch-poster.data-poster.redis-signer.signing-keystring-a 32-byte (64-character) hex string used to sign messages, or a path to a file containing it
node.batch-poster.data-poster.replacement-timesdurationSlice[5m0s,10m0s,20m0s,30m0s,1h0m0s,2h0m0s,4h0m0s,6h0m0s,8h0m0s,12h0m0s,16h0m0s,18h0m0s,20h0m0s,22h0m0s]comma-separated list of durations since first posting to attempt a replace-by-fee
node.batch-poster.data-poster.target-price-gweifloat60the target price to use for maximum fee cap calculation
node.batch-poster.data-poster.urgency-gweifloat2the urgency to use for maximum fee cap calculation
node.batch-poster.data-poster.use-db-storagebooltrueuses database storage when enabled
node.batch-poster.data-poster.use-noop-storagebool-uses noop storage, it doesn't store anything
node.batch-poster.data-poster.wait-for-l1-finalitybooltrueonly treat a transaction as confirmed after L1 finality has been achieved (recommended)
node.batch-poster.delay-buffer-always-updatablebooltruealways treat delay buffer as updatable
node.batch-poster.delay-buffer-threshold-marginuint25the number of blocks to post the batch before reaching the delay buffer threshold
node.batch-poster.disable-dap-fallback-store-data-on-chainbool-If unable to batch to DA provider, disable fallback storing data on chain
node.batch-poster.enablebool-enable posting batches to l1
node.batch-poster.error-delayduration10show long to delay after error posting batch
node.batch-poster.extra-batch-gasuint50000use this much more gas than estimation says is necessary to post batches
node.batch-poster.gas-estimate-base-fee-multiple-bipsuint15000for gas estimation, use this multiple of the basefee (measured in basis points) as the max fee per gas
node.batch-poster.gas-refunder-addressstring-The gas refunder contract address (optional)
node.batch-poster.ignore-blob-pricebool-if the parent chain supports 4844 blobs and ignore-blob-price is true, post 4844 blobs even if it's not price efficient
node.batch-poster.l1-block-boundstring-only post messages to batches when they're within the max future block/timestamp as of this L1 block tag ("safe", "finalized", "latest", or "ignore" to ignore this check)
node.batch-poster.l1-block-bound-bypassduration1h0m0spost batches even if not within the layer 1 future bounds if we're within this margin of the max delay
node.batch-poster.max-4844-batch-sizeint-maximum estimated compressed 4844 blob enabled batch size
node.batch-poster.max-delayduration1h0m0smaximum batch posting delay
node.batch-poster.max-empty-batch-delayduration72h0m0smaximum empty batch posting delay, batch poster will only be able to post an empty batch if this time period building a batch has passed
node.batch-poster.max-sizeint100000maximum estimated compressed batch size
node.batch-poster.parent-chain-eip7623stringautoif parent chain uses EIP7623 ("yes", "no", "auto")
node.batch-poster.parent-chain-wallet.accountstringis first account in keystoreaccount to use
node.batch-poster.parent-chain-wallet.only-create-keybool-if true, creates new key then exits
node.batch-poster.parent-chain-wallet.passwordstringPASSWORD_NOT_SETwallet passphrase
node.batch-poster.parent-chain-wallet.pathnamestringbatch-poster-walletpathname for wallet
node.batch-poster.parent-chain-wallet.private-keystring-private key for wallet
node.batch-poster.poll-intervalduration10show long to wait after no batches are ready to be posted before checking again
node.batch-poster.post-4844-blobsbool-if the parent chain supports 4844 blobs and they're well priced, post EIP-4844 blobs
node.batch-poster.redis-lock.background-lockbool-should node always try grabbing lock in background
node.batch-poster.redis-lock.enablebooltrueif false, always treat this as locked and don't write the lock to redis
node.batch-poster.redis-lock.keystring-key for lock
node.batch-poster.redis-lock.lockout-durationduration1m0show long lock is held
node.batch-poster.redis-lock.my-idstring-this node's id prefix when acquiring the lock (optional)
node.batch-poster.redis-lock.refresh-durationduration10show long between consecutive calls to redis
node.batch-poster.redis-urlstring-if non-empty, the Redis URL to store queued transactions in
node.batch-poster.reorg-resistance-marginduration10m0sdo not post batch if its within this duration from layer 1 minimum bounds. Requires l1-block-bound option not be set to "ignore"
node.batch-poster.use-access-listsbooltruepost batches with access lists to reduce gas usage (disabled for L3s)
node.batch-poster.wait-for-max-delaybool-wait for the max batch delay, even if the batch is full
node.block-metadata-fetcher.api-blocks-limituint100maximum number of blocks per arb_getRawBlockMetadata query
node.block-metadata-fetcher.enablebool-enable syncing blockMetadata using a bulk blockMetadata api
node.block-metadata-fetcher.max-sync-intervalduration32m0smaximum time between blockMetadata requests
node.block-metadata-fetcher.source.arg-log-limituint2048limit size of arguments in log entries
node.block-metadata-fetcher.source.connection-waitduration-how long to wait for initial connection
node.block-metadata-fetcher.source.jwtsecretstring-path to file with jwtsecret for validation - ignored if url is self or self-auth
node.block-metadata-fetcher.source.retriesuint3number of retries in case of failure(0 mean one attempt)
node.block-metadata-fetcher.source.retry-delayduration-delay between retries
node.block-metadata-fetcher.source.retry-errorsstringwebsocket: close.*Errors matching this regular expression are automatically retried
node.block-metadata-fetcher.source.timeoutduration-per-response timeout (0-disabled)
node.block-metadata-fetcher.source.urlstringself-authurl of server, use self for loopback websocket, self-auth for loopback with authentication
node.block-metadata-fetcher.source.websocket-message-size-limitint268435456websocket message size limit used by the RPC client. 0 means no limit
node.block-metadata-fetcher.sync-intervalduration1m0sminimum time between blockMetadata requests
node.block-validator.batch-cache-limituint3220limit number of old batches to keep in block-validator
node.block-validator.block-inputs-file-pathstring./target/validation_inputsdirectory to write block validation inputs files
node.block-validator.current-module-rootstringcurrentcurrent wasm module root ('current' read from chain, 'latest' from machines/latest dir, or provide hash)
node.block-validator.enablebool-enable block-by-block validation
node.block-validator.failure-is-fatalbooltruefailing a validation is treated as a fatal error
node.block-validator.forward-blocksuint128prepare entries for up to that many blocks ahead of validation (stores batch-copy per block)
node.block-validator.memory-free-limitstringdefaultminimum free-memory limit after reaching which the blockvalidator pauses validation. Enabled by default as 1GB, to disable provide empty string
node.block-validator.pending-upgrade-module-rootstringlatestpending upgrade wasm module root to additionally validate (hash, 'latest' or empty)
node.block-validator.prerecorded-blocksuint4record that many blocks ahead of validation (larger footprint)
node.block-validator.recording-iter-limituint20limit on block recordings sent per iteration
node.block-validator.redis-validation-client-config.create-streamsbooltruecreate redis streams if it does not exist
node.block-validator.redis-validation-client-config.namestringredis validation clientvalidation client name
node.block-validator.redis-validation-client-config.producer-config.check-result-intervalduration5sinterval in which producer checks pending messages whether consumer processing them is inactive
node.block-validator.redis-validation-client-config.producer-config.request-timeoutduration3h0m0stimeout after which the message in redis stream is considered as errored, this prevents workers from working on wrong requests indefinitely
node.block-validator.redis-validation-client-config.redis-urlstring-redis url
node.block-validator.redis-validation-client-config.roomint322validation client room
node.block-validator.redis-validation-client-config.stream-prefixstring-prefix for stream name
node.block-validator.redis-validation-client-config.stylus-archsstrings[wavm]archs required for stylus workers
node.block-validator.validation-pollduration1spoll time to check validations
node.block-validator.validation-sent-limituint1024limit on block validations to keep in validation sent state
node.block-validator.validation-server-configs-liststringdefaultarray of execution rpc configs given as a json string. time duration should be supplied in number indicating nanoseconds
node.block-validator.validation-server.arg-log-limituint2048limit size of arguments in log entries
node.block-validator.validation-server.connection-waitduration-how long to wait for initial connection
node.block-validator.validation-server.jwtsecretstring-path to file with jwtsecret for validation - ignored if url is self or self-auth
node.block-validator.validation-server.retriesuint3number of retries in case of failure(0 mean one attempt)
node.block-validator.validation-server.retry-delayduration-delay between retries
node.block-validator.validation-server.retry-errorsstringwebsocket: close.*Errors matching this regular expression are automatically retried
node.block-validator.validation-server.timeoutduration-per-response timeout (0-disabled)
node.block-validator.validation-server.urlstringself-authurl of server, use self for loopback websocket, self-auth for loopback with authentication
node.block-validator.validation-server.websocket-message-size-limitint268435456websocket message size limit used by the RPC client. 0 means no limit
node.block-validator.validation-spawning-allowed-attemptsuint1number of attempts allowed when trying to spawn a validation before erroring out
node.bold.apibool-enable api
node.bold.api-db-pathstringbold-api-dbbold api db path
node.bold.api-hoststring127.0.0.1bold api host
node.bold.api-portuint169393bold api port
node.bold.assertion-confirming-intervalduration1m0sconfirm assertion interval
node.bold.assertion-posting-intervalduration15m0sassertion posting interval
node.bold.assertion-scanning-intervalduration1m0sscan assertion interval
node.bold.auto-depositbooltrueauto-deposit stake token whenever making a move in BoLD that does not have enough stake token balance
node.bold.auto-increase-allowancebooltrueauto-increase spending allowance of the stake token by the rollup and challenge manager contracts
node.bold.check-staker-switch-intervalduration1m0show often to check if staker can switch to bold
node.bold.delegated-staking.custom-withdrawal-addressstring-enable a custom withdrawal address for staking on the rollup contract, useful for delegated stakers
node.bold.delegated-staking.enablebool-enable delegated staking by having the validator call newStake on startup
node.bold.enable-fast-confirmationbool-enable fast confirmation
node.bold.max-get-log-blocksint5000maximum size for chunk of blocks when using get logs rpc
node.bold.minimum-gap-to-parent-assertionduration1m0sminimum duration to wait since the parent assertion was created to post a new assertion
node.bold.parent-chain-block-timeduration12sthe average block time of the parent chain where assertions are posted
node.bold.rpc-block-numberstringfinalizeddefine the block number to use for reading data onchain, either latest, safe, or finalized
node.bold.start-validation-from-stakedbooltrueassume staked nodes are valid
node.bold.state-provider-config.check-batch-finalitybooltruecheck batch finality
node.bold.state-provider-config.machine-leaves-cache-pathstringmachine-hashes-cachepath to machine cache
node.bold.state-provider-config.validator-namestringdefault-validatorname identifier for cosmetic purposes
node.bold.track-challenge-parent-assertion-hashesstrings-only track challenges/edges with these parent assertion hashes
node.consensus-execution-syncer.sync-intervalduration300msInterval in which finality and sync data is pushed from consensus to execution
node.da-provider.data-stream.max-store-chunk-body-sizeint5242880maximum HTTP body size for chunked store requests
node.da-provider.data-stream.rpc-methods.finalize-streamstringdaprovider_commitChunkedStorename of the RPC method to finalize a chunked data stream
node.da-provider.data-stream.rpc-methods.start-streamstringdaprovider_startChunkedStorename of the RPC method to start a chunked data stream
node.da-provider.data-stream.rpc-methods.stream-chunkstringdaprovider_sendChunkname of the RPC method to send a chunk of data
node.da-provider.enablebool-enable daprovider client
node.da-provider.rpc.arg-log-limituint2048limit size of arguments in log entries
node.da-provider.rpc.connection-waitduration-how long to wait for initial connection
node.da-provider.rpc.jwtsecretstring-path to file with jwtsecret for validation - ignored if url is self or self-auth
node.da-provider.rpc.retriesuint3number of retries in case of failure(0 mean one attempt)
node.da-provider.rpc.retry-delayduration-delay between retries
node.da-provider.rpc.retry-errorsstringwebsocket: close.*Errors matching this regular expression are automatically retried
node.da-provider.rpc.timeoutduration-per-response timeout (0-disabled)
node.da-provider.rpc.urlstring-url of server, use self for loopback websocket, self-auth for loopback with authentication
node.da-provider.rpc.websocket-message-size-limitint268435456websocket message size limit used by the RPC client. 0 means no limit
node.da-provider.store-rpc-methodstringdaprovider_storename of the store rpc method on the daprovider server (used when data streaming is disabled)
node.da-provider.use-data-streamingbool-use data streaming protocol for storing large payloads
node.da-provider.with-writerbool-implies if the daprovider rpc server supports writer interface
node.data-availability.enablebool-enable Anytrust Data Availability mode
node.data-availability.panic-on-errorbool-whether the Data Availability Service should fail immediately on errors (not recommended)
node.data-availability.parent-chain-connection-attemptsint15parent chain RPC connection attempts (spaced out at least 1 second per attempt, 0 to retry infinitely), only used in standalone daserver; when running as part of a node that node's parent chain configuration is used
node.data-availability.parent-chain-node-urlstring-URL for parent chain node, only used in standalone daserver and daprovider; when running as part of a node that node's L1 configuration is used
node.data-availability.request-timeoutduration5sData Availability Service timeout duration for Store requests
node.data-availability.rest-aggregator.enablebool-enable retrieval of sequencer batch data from a list of remote REST endpoints; if other DAS storage types are enabled, this mode is used as a fallback
node.data-availability.rest-aggregator.max-per-endpoint-statsint20number of stats entries (latency and success rate) to keep for each REST endpoint; controls whether strategy is faster or slower to respond to changing conditions
node.data-availability.rest-aggregator.online-url-liststring-a URL to a list of URLs of REST das endpoints that is checked at startup; additive with the url option
node.data-availability.rest-aggregator.online-url-list-fetch-intervalduration1h0m0stime interval to periodically fetch url list from online-url-list
node.data-availability.rest-aggregator.simple-explore-exploit-strategy.exploit-iterationsuint321000number of consecutive GetByHash calls to the aggregator where each call will cause it to select from REST endpoints in order of best latency and success rate, before switching to explore mode
node.data-availability.rest-aggregator.simple-explore-exploit-strategy.explore-iterationsuint3220number of consecutive GetByHash calls to the aggregator where each call will cause it to randomly select from REST endpoints until one returns successfully, before switching to exploit mode
node.data-availability.rest-aggregator.strategystringsimple-explore-exploitstrategy to use to determine order and parallelism of calling REST endpoint URLs; valid options are 'simple-explore-exploit'
node.data-availability.rest-aggregator.strategy-update-intervalduration10show frequently to update the strategy with endpoint latency and error rate data
node.data-availability.rest-aggregator.sync-to-storage.delay-on-errorduration1stime to wait if encountered an error before retrying
node.data-availability.rest-aggregator.sync-to-storage.eagerbool-eagerly sync batch data to this DAS's storage from the rest endpoints, using L1 as the index of batch data hashes; otherwise only sync lazily
node.data-availability.rest-aggregator.sync-to-storage.eager-lower-bound-blockuint-when eagerly syncing, start indexing forward from this L1 block. Only used if there is no sync state
node.data-availability.rest-aggregator.sync-to-storage.ignore-write-errorsbooltruelog only on failures to write when syncing; otherwise treat it as an error
node.data-availability.rest-aggregator.sync-to-storage.parent-chain-blocks-per-readuint100when eagerly syncing, max l1 blocks to read per poll
node.data-availability.rest-aggregator.sync-to-storage.retention-periodduration360h0m0speriod to request storage to retain synced data
node.data-availability.rest-aggregator.sync-to-storage.state-dirstring-directory to store the sync state in, ie the block number currently synced up to, so that we don't sync from scratch each time
node.data-availability.rest-aggregator.sync-to-storage.sync-expired-databooltruesync even data that is expired; needed for mirror configuration
node.data-availability.rest-aggregator.urlsstrings-list of URLs including 'http://' or 'https://' prefixes and port numbers to REST DAS endpoints; additive with the online-url-list option
node.data-availability.rest-aggregator.wait-before-try-nextduration2stime to wait until trying the next set of REST endpoints while waiting for a response; the next set of REST endpoints is determined by the strategy selected
node.data-availability.rpc-aggregator.assumed-honestint-Number of assumed honest backends (H). If there are N backends, K=N+1-H valid responses are required to consider an Store request to be successful.
node.data-availability.rpc-aggregator.backendsbackendConfigListnullJSON RPC backend configuration. This can be specified on the command line as a JSON array, eg: [{"url": "...", "pubkey": "..."},...], or as a JSON array in the config file.
node.data-availability.rpc-aggregator.das-rpc-client.data-stream.max-store-chunk-body-sizeint5242880maximum HTTP body size for chunked store requests
node.data-availability.rpc-aggregator.das-rpc-client.data-stream.rpc-methods.finalize-streamstringdas_commitChunkedStorename of the RPC method to finalize a chunked data stream
node.data-availability.rpc-aggregator.das-rpc-client.data-stream.rpc-methods.start-streamstringdas_startChunkedStorename of the RPC method to start a chunked data stream
node.data-availability.rpc-aggregator.das-rpc-client.data-stream.rpc-methods.stream-chunkstringdas_sendChunkname of the RPC method to send a chunk of data
node.data-availability.rpc-aggregator.das-rpc-client.enable-chunked-storebooltrueenable data to be sent to DAS in chunks instead of all at once
node.data-availability.rpc-aggregator.das-rpc-client.server-urlstring-URL of DAS server to connect to
node.data-availability.rpc-aggregator.enablebool-enable storage of sequencer batch data from a list of RPC endpoints; this should only be used by the batch poster and not in combination with other DAS storage types
node.data-availability.sequencer-inbox-addressstring-parent chain address of SequencerInbox contract
node.delayed-sequencer.enablebool-enable delayed sequencer
node.delayed-sequencer.finalize-distanceint20how many blocks in the past L1 block is considered final (ignored when using Merge finality)
node.delayed-sequencer.require-full-finalitybool-whether to wait for full finality before sequencing delayed messages
node.delayed-sequencer.rescan-intervalduration1sfrequency to rescan for new delayed messages (the parent chain reader's poll-interval config is more important than this)
node.delayed-sequencer.use-merge-finalitybooltruewhether to use The Merge's notion of finality before sequencing delayed messages
node.feed.input.enable-compressionbooltrueenable per message deflate compression support
node.feed.input.reconnect-initial-backoffduration1sinitial duration to wait before reconnect
node.feed.input.reconnect-maximum-backoffduration1m4smaximum duration to wait before reconnect
node.feed.input.require-chain-idbool-require chain id to be present on connect
node.feed.input.require-feed-versionbool-require feed version to be present on connect
node.feed.input.secondary-urlstrings-list of secondary URLs of sequencer feed source. Would be started in the order they appear in the list when primary feeds fails
node.feed.input.timeoutduration20sduration to wait before timing out connection to sequencer feed
node.feed.input.urlstrings-list of primary URLs of sequencer feed source
node.feed.input.verify.accept-sequencerbooltrueaccept verified message from sequencer
node.feed.input.verify.allowed-addressesstrings-a list of allowed addresses
node.feed.output.addrstring-address to bind the relay feed output to
node.feed.output.backlog.enable-backlog-deep-copybool-enable deep copying of L2 messages for memory profiling (debug only)
node.feed.output.backlog.segment-limitint240the maximum number of messages each segment within the backlog can contain
node.feed.output.client-delayduration-delay the first messages sent to each client by this amount
node.feed.output.client-timeoutduration15sduration to wait before timing out connections to client
node.feed.output.connection-limits.enablebool-enable broadcaster per-client connection limiting
node.feed.output.connection-limits.per-ip-limitint5limit clients, as identified by IPv4/v6 address, to this many connections to this relay
node.feed.output.connection-limits.per-ipv6-cidr-48-limitint20limit ipv6 clients, as identified by IPv6 address masked with /48, to this many connections to this relay
node.feed.output.connection-limits.per-ipv6-cidr-64-limitint10limit ipv6 clients, as identified by IPv6 address masked with /64, to this many connections to this relay
node.feed.output.connection-limits.reconnect-cooldown-periodduration-time to wait after a relay client disconnects before the disconnect is registered with respect to the limit for this client
node.feed.output.enablebool-enable broadcaster
node.feed.output.enable-compressionbool-enable per message deflate compression support
node.feed.output.handshake-timeoutduration1sduration to wait before timing out HTTP to WS upgrade
node.feed.output.limit-catchupbool-only supply catchup buffer if requested sequence number is reasonable
node.feed.output.log-connectbool-log every client connect
node.feed.output.log-disconnectbool-log every client disconnect
node.feed.output.max-catchupint-1the maximum size of the catchup buffer (-1 means unlimited)
node.feed.output.max-send-queueint4096maximum number of messages allowed to accumulate before client is disconnected
node.feed.output.pingduration5sduration for ping interval
node.feed.output.portstring9642port to bind the relay feed output to
node.feed.output.queueint100queue size for HTTP to WS upgrade
node.feed.output.read-timeoutduration1sduration to wait before timing out reading data (i.e. pings) from clients
node.feed.output.require-compressionbool-require clients to use compression
node.feed.output.require-versionbool-don't connect if client version not present
node.feed.output.signedbool-sign broadcast messages
node.feed.output.workersint100number of threads to reserve for HTTP to WS upgrade
node.feed.output.write-timeoutduration2sduration to wait before timing out writing data to clients
node.inbox-reader.check-delayduration1m0sthe maximum time to wait between inbox checks (if not enough new blocks are found)
node.inbox-reader.default-blocks-to-readuint100the default number of blocks to read at once (will vary based on traffic by default)
node.inbox-reader.delay-blocksuint-number of latest blocks to ignore to reduce reorgs
node.inbox-reader.max-blocks-to-readuint2000if adjust-blocks-to-read is enabled, the maximum number of blocks to read at once
node.inbox-reader.min-blocks-to-readuint1the minimum number of blocks to read at once (when caught up lowers load on L1)
node.inbox-reader.read-modestringlatestmode to only read latest or safe or finalized L1 blocks. Enabling safe or finalized disables feed input and output. Defaults to latest. Takes string input, valid strings- latest, safe, finalized
node.inbox-reader.target-messages-readuint500if adjust-blocks-to-read is enabled, the target number of messages to read at once
node.maintenance.check-intervalduration1m0show often to check if maintenance should be run
node.maintenance.enablebool-enable maintenance runner
node.maintenance.lock.background-lockbool-should node always try grabbing lock in background
node.maintenance.lock.enablebooltrueif false, always treat this as locked and don't write the lock to redis
node.maintenance.lock.keystring-key for lock
node.maintenance.lock.lockout-durationduration1m0show long lock is held
node.maintenance.lock.my-idstring-this node's id prefix when acquiring the lock (optional)
node.maintenance.lock.refresh-durationduration10show long between consecutive calls to redis
node.message-pruner.enablebooltrueenable message pruning
node.message-pruner.min-batches-leftuint1000min number of batches not pruned
node.message-pruner.prune-intervalduration1m0sinterval for running message pruner
node.parent-chain-reader.enablebooltrueenable reader connection
node.parent-chain-reader.old-header-timeoutduration5m0swarns if the latest l1 block is at least this old
node.parent-chain-reader.poll-intervalduration15sinterval when polling endpoint
node.parent-chain-reader.poll-onlybool-do not attempt to subscribe to header events
node.parent-chain-reader.poll-timeoutduration5stimeout when polling endpoint
node.parent-chain-reader.subscribe-err-intervalduration5m0sinterval for subscribe error
node.parent-chain-reader.tx-timeoutduration5m0stimeout when waiting for a transaction
node.parent-chain-reader.use-finality-databooltrueuse l1 data about finalized/safe blocks
node.resource-mgmt.mem-free-limitstring-Decline RPC calls if free memory excluding the page cache is below this amount
node.seq-coordinator.block-metadata-durationduration240h0m0sexpiration duration for block metadata keys in Redis
node.seq-coordinator.chosen-healthcheck-addrstring-if non-empty, launch an HTTP service binding to this address that returns status code 200 when chosen and 503 otherwise
node.seq-coordinator.delete-finalized-msgsbooltrueenable deleting of finalized messages from redis
node.seq-coordinator.enablebool-enable sequence coordinator
node.seq-coordinator.handoff-timeoutduration30sthe maximum amount of time to spend waiting for another sequencer to accept the lockout when handing it off on shutdown or db compaction
node.seq-coordinator.lockout-durationduration1m0sduration to hold the sequencer lockout after acquiring it
node.seq-coordinator.lockout-spareduration30stime to subtract from lockout duration to ensure timely renewal
node.seq-coordinator.msg-per-polluint2000will only be marked as wanting the lockout if not too far behind
node.seq-coordinator.my-urlstring<?INVALID-URL?>url for this sequencer if it is the chosen
node.seq-coordinator.new-redis-urlstring-switch to the new Redis URL to coordinate via
node.seq-coordinator.redis-quorum-sizeuint1the quorum size needed to qualify a redis GET as valid
node.seq-coordinator.redis-urlstring-the Redis URL to coordinate via
node.seq-coordinator.release-retriesint4the number of times to retry releasing the wants lockout and chosen one status on shutdown
node.seq-coordinator.retry-intervalduration50msinterval to wait before retrying after an error
node.seq-coordinator.safe-shutdown-delayduration5sif non-zero will add delay after transferring control
node.seq-coordinator.seq-num-durationduration240h0m0sexpiration duration for message count keys in Redis
node.seq-coordinator.signer.ecdsa.accept-sequencerbooltrueaccept verified message from sequencer
node.seq-coordinator.signer.ecdsa.allowed-addressesstrings-a list of allowed addresses
node.seq-coordinator.signer.symmetric-fallbackbool-if to fall back to symmetric hmac
node.seq-coordinator.signer.symmetric-signbool-if to sign with symmetric hmac
node.seq-coordinator.signer.symmetric.fallback-verification-keystring-a fallback key used for message verification
node.seq-coordinator.signer.symmetric.signing-keystring-a 32-byte (64-character) hex string used to sign messages, or a path to a file containing it
node.seq-coordinator.update-intervalduration250msinterval between sequencer coordinator update attempts
node.sequencerbool-enable sequencer
node.staker.confirmation-blocksint12confirmation blocks
node.staker.contract-wallet-addressstring-validator smart contract wallet public address
node.staker.data-poster.allocate-mempool-balancebooltrueif true, don't put transactions in the mempool that spend a total greater than the batch poster's balance
node.staker.data-poster.disable-new-txbool-disable posting new transactions, data poster will still keep confirming existing batches
node.staker.data-poster.elapsed-time-baseduration10m0sunit to measure the time elapsed since creation of transaction used for maximum fee cap calculation
node.staker.data-poster.elapsed-time-importancefloat10weight given to the units of time elapsed used for maximum fee cap calculation
node.staker.data-poster.external-signer.addressstring-external signer address
node.staker.data-poster.external-signer.client-certstring-rpc client cert
node.staker.data-poster.external-signer.client-private-keystring-rpc client private key
node.staker.data-poster.external-signer.insecure-skip-verifybool-skip TLS certificate verification
node.staker.data-poster.external-signer.methodstringeth_signTransactionexternal signer method
node.staker.data-poster.external-signer.root-castring-external signer root CA
node.staker.data-poster.external-signer.urlstring-external signer url
node.staker.data-poster.legacy-storage-encodingbool-encodes items in a legacy way (as it was before dropping generics)
node.staker.data-poster.max-fee-bid-multiple-bipsuint100000the maximum multiple of the current price to bid for a transaction's fees (may be exceeded due to min rbf increase, 0 = unlimited)
node.staker.data-poster.max-fee-cap-formulastring-mathematical formula to calculate maximum fee cap gwei the result of which would be float64. This expression is expected to be evaluated please refer https://github.com/Knetic/govaluate/blob/master/MANUAL.md to find all available mathematical operators. Currently available variables to construct the formula are BacklogOfBatches, UrgencyGWei, ElapsedTime, ElapsedTimeBase, ElapsedTimeImportance, and TargetPriceGWei (default "((BacklogOfBatches _ UrgencyGWei) ** 2) + ((ElapsedTime/ElapsedTimeBase) ** 2) _ ElapsedTimeImportance + TargetPriceGWei")
node.staker.data-poster.max-mempool-transactionsuint1the maximum number of transactions to have queued in the mempool at once (0 = unlimited)
node.staker.data-poster.max-mempool-weightuint1the maximum number of weight (weight = min(1, tx.blobs)) to have queued in the mempool at once (0 = unlimited)
node.staker.data-poster.max-queued-transactionsint-the maximum number of unconfirmed transactions to track at once (0 = unlimited)
node.staker.data-poster.max-tip-cap-gweifloat1.2the maximum tip cap to post transactions at
node.staker.data-poster.min-tip-cap-gweifloat0.05the minimum tip cap to post transactions at
node.staker.data-poster.nonce-rbf-soft-confsuint1the maximum probable reorg depth, used to determine when a transaction will no longer likely need replaced-by-fee
node.staker.data-poster.redis-signer.fallback-verification-keystring-a fallback key used for message verification
node.staker.data-poster.redis-signer.signing-keystring-a 32-byte (64-character) hex string used to sign messages, or a path to a file containing it
node.staker.data-poster.replacement-timesdurationSlice[5m0s,10m0s,20m0s,30m0s,1h0m0s,2h0m0s,4h0m0s,6h0m0s,8h0m0s,12h0m0s,16h0m0s,18h0m0s,20h0m0s,22h0m0s]comma-separated list of durations since first posting to attempt a replace-by-fee
node.staker.data-poster.target-price-gweifloat60the target price to use for maximum fee cap calculation
node.staker.data-poster.urgency-gweifloat2the urgency to use for maximum fee cap calculation
node.staker.data-poster.use-db-storagebooltrueuses database storage when enabled
node.staker.data-poster.use-noop-storagebool-uses noop storage, it doesn't store anything
node.staker.data-poster.wait-for-l1-finalitybooltrueonly treat a transaction as confirmed after L1 finality has been achieved (recommended)
node.staker.disable-challengebool-disable validator challenge
node.staker.enablebooltrueenable validator
node.staker.enable-fast-confirmationbool-enable fast confirmation
node.staker.extra-gasuint50000use this much more gas than estimation says is necessary to post transactions
node.staker.gas-refunder-addressstring-The gas refunder contract address (optional)
node.staker.log-query-batch-sizeuint-range ro query from eth_getLogs
node.staker.make-assertion-intervalduration1h0m0sif configured with the makeNodes strategy, how often to create new assertions (bypassed in case of a dispute)
node.staker.only-create-wallet-contractbool-only create smart wallet contract and exit
node.staker.parent-chain-wallet.accountstringis first account in keystoreaccount to use
node.staker.parent-chain-wallet.only-create-keybool-if true, creates new key then exits
node.staker.parent-chain-wallet.passwordstringPASSWORD_NOT_SETwallet passphrase
node.staker.parent-chain-wallet.pathnamestringvalidator-walletpathname for wallet
node.staker.parent-chain-wallet.private-keystring-private key for wallet
node.staker.posting-strategy.high-gas-delay-blocksint-high gas delay blocks
node.staker.posting-strategy.high-gas-thresholdfloat-high gas threshold
node.staker.redis-urlstring-redis url for L1 validator
node.staker.staker-intervalduration1m0show often the L1 validator should check the status of the L1 rollup and maybe take action with its stake
node.staker.start-validation-from-stakedbooltrueassume staked nodes are valid
node.staker.strategystringWatchtowerL1 validator strategy, either watchtower, defensive, stakeLatest, or makeNodes
node.staker.use-smart-contract-walletbool-use a smart contract wallet instead of an EOA address
node.sync-monitor.msg-lagduration1sallowed msg lag while still considered in sync
node.transaction-streamer.execute-message-loop-delayduration100msdelay when polling calls to execute messages
node.transaction-streamer.max-broadcaster-queue-sizeint50000maximum cache of pending broadcaster messages
node.transaction-streamer.max-reorg-resequence-depthint1024maximum number of messages to attempt to resequence on reorg (0 = never resequence, -1 = always resequence)
node.transaction-streamer.shutdown-on-blockhash-mismatchbool-if set the node gracefully shuts down upon detecting mismatch in feed and locally computed blockhash. This is turned off by default
node.transaction-streamer.sync-till-blockuint-node will not sync past this block
node.transaction-streamer.track-block-metadata-fromuint-block number to start saving blockmetadata, 0 to disable

parent-chain

Related guide: Configuration system

parent-chain flags (14)
FlagTypeDefaultDescription
parent-chain.blob-client.authorizationstring-Value to send with the HTTP Authorization: header for Beacon REST requests, must include both scheme and scheme parameters
parent-chain.blob-client.beacon-urlstring-Beacon Chain RPC URL to use for fetching blobs (normally on port 3500)
parent-chain.blob-client.blob-directorystring-Full path of the directory to save fetched blobs
parent-chain.blob-client.secondary-beacon-urlstring-Backup beacon Chain RPC URL to use for fetching blobs (normally on port 3500) when unable to fetch from primary
parent-chain.connection.arg-log-limituint2048limit size of arguments in log entries
parent-chain.connection.connection-waitduration1m0show long to wait for initial connection
parent-chain.connection.jwtsecretstring-path to file with jwtsecret for validation - ignored if url is self or self-auth
parent-chain.connection.retriesuint2number of retries in case of failure(0 mean one attempt)
parent-chain.connection.retry-delayduration-delay between retries
parent-chain.connection.retry-errorsstring-Errors matching this regular expression are automatically retried
parent-chain.connection.timeoutduration1m0sper-response timeout (0-disabled)
parent-chain.connection.urlstring-url of server, use self for loopback websocket, self-auth for loopback with authentication
parent-chain.connection.websocket-message-size-limitint268435456websocket message size limit used by the RPC client. 0 means no limit
parent-chain.iduint-if set other than 0, will be used to validate database and L1 connection

persistent

Related guide: Docker and CLI binaries

persistent flags (29)
FlagTypeDefaultDescription
persistent.ancientstring-directory of ancient where the chain freezer can be opened
persistent.chainstring-directory to store chain state
persistent.db-enginestring-backing database implementation to use. If set to empty string the database type will be autodetected and if no pre-existing database is found it will default to creating new pebble database ('leveldb', 'pebble' or '' = auto-detect)
persistent.global-configstring.arbitrumdirectory to store global config
persistent.handlesint512number of file descriptor handles to use for the database
persistent.log-dirstring-directory to store log file
persistent.pebble.experimental.block-sizeint4096target uncompressed size in bytes of each table block
persistent.pebble.experimental.bytes-per-syncint524288number of bytes to write to a SSTable before calling Sync on it in the background
persistent.pebble.experimental.compaction-debt-concurrencyuint1073741824controls the threshold of compaction debt at which additional compaction concurrency slots are added. For every multiple of this value in compaction debt bytes, an additional concurrent compaction is added. This works "on top" of l0-compaction-concurrency, so the higher of the count of compaction concurrency slots as determined by the two options is chosen.
persistent.pebble.experimental.disable-automatic-compactionsbool-disables automatic compactions
persistent.pebble.experimental.force-writer-parallelismbool-force parallelism in the sstable Writer for the metamorphic tests. Even with the MaxWriterConcurrency option set, pebble only enables parallelism in the sstable Writer if there is enough CPU available, and this option bypasses that.
persistent.pebble.experimental.index-block-sizeint4096target uncompressed size in bytes of each index block. When the index block size is larger than this target, two-level indexes are automatically enabled. Setting this option to a large value (such as 2147483647) disables the automatic creation of two-level indexes.
persistent.pebble.experimental.l-base-max-bytesint67108864The maximum number of bytes for LBase. The base level is the level which L0 is compacted into. The base level is determined dynamically based on the existing data in the LSM. The maximum number of bytes for other levels is computed dynamically based on the base level's maximum size. When the maximum number of bytes for a level is exceeded, compaction is requested.
persistent.pebble.experimental.l0-compaction-concurrencyint10threshold of L0 read-amplification at which compaction concurrency is enabled (if compaction-debt-concurrency was not already exceeded). Every multiple of this value enables another concurrent compaction up to max-concurrent-compactions.
persistent.pebble.experimental.l0-compaction-file-thresholdint500count of L0 files necessary to trigger an L0 compaction
persistent.pebble.experimental.l0-compaction-thresholdint2amount of L0 read-amplification necessary to trigger an L0 compaction
persistent.pebble.experimental.l0-stop-writes-thresholdint12hard limit on L0 read-amplification, computed as the number of L0 sublevels. Writes are stopped when this threshold is reached
persistent.pebble.experimental.max-writer-concurrencyint-maximum number of compression workers the compression queue is allowed to use. If max-writer-concurrency > 0, then the Writer will use parallelism, to compress and write blocks to disk. Otherwise, the writer will compress and write blocks to disk synchronously.
persistent.pebble.experimental.mem-table-stop-writes-thresholdint4hard limit on the number of queued of MemTables
persistent.pebble.experimental.read-compaction-rateAllowedSeeks16000controls the frequency of read triggered compactions by adjusting AllowedSeeks in manifest.FileMetadata: AllowedSeeks = FileSize / ReadCompactionRate
persistent.pebble.experimental.read-sampling-multiplierint-1a multiplier for the readSamplingPeriod in iterator.maybeSampleRead() to control the frequency of read sampling to trigger a read triggered compaction. A value of -1 prevents sampling and disables read triggered compactions. Geth default is -1. The pebble default is 1 << 4. which gets multiplied with a constant of 1 << 16 to yield 1 << 20 (1MB).
persistent.pebble.experimental.target-byte-deletion-rateint-rate (in bytes per second) at which sstable file deletions are limited to (under normal circumstances).
persistent.pebble.experimental.target-file-sizeint2097152target file size for the level 0
persistent.pebble.experimental.target-file-size-equal-levelsbool-if true same target-file-size will be uses for all levels, otherwise target size for layer n = 2 * target size for layer n - 1
persistent.pebble.experimental.wal-bytes-per-syncint512000number of bytes to write to a write-ahead log (WAL) before calling Sync on it in the background
persistent.pebble.experimental.wal-dirstring-absolute path of directory to store write-ahead logs (WALs) in. If empty, WALs will be stored in the same directory as sstables
persistent.pebble.experimental.wal-min-sync-intervalint-minimum duration in microseconds between syncs of the WAL. If WAL syncs are requested faster than this interval, they will be artificially delayed.
persistent.pebble.max-concurrent-compactionsint2maximum number of concurrent compactions
persistent.pebble.sync-modebool-if true sync mode is used (data needs to be written to WAL before the write is marked as completed)

pprof

Related guide: Node tuning and monitoring

pprof flags (1)
FlagTypeDefaultDescription
pprofbool-enable pprof

pprof-cfg

Related guide: Node tuning and monitoring

pprof-cfg flags (2)
FlagTypeDefaultDescription
pprof-cfg.addrstring127.0.0.1pprof server address
pprof-cfg.portint6071pprof server port

rpc

Related guide: Configuration system

rpc flags (2)
FlagTypeDefaultDescription
rpc.batch-request-limitint1000the maximum number of requests in a batch (0 means no limit)
rpc.max-batch-response-sizeint10000000the maximum response size for a JSON-RPC request measured in bytes (0 means no limit)

validation

Related guide: Node tuning and monitoring

validation flags (24)
FlagTypeDefaultDescription
validation.api-authbooltruevalidate is an authenticated API
validation.api-publicbool-validate is a public API
validation.arbitrator.execution-run-timeoutduration15m0stimeout before discarding execution run
validation.arbitrator.execution.cached-challenge-machinesuint4how many machines to store in cache while working on a challenge (should be even)
validation.arbitrator.execution.initial-stepsuint100000initial steps between machines
validation.arbitrator.output-pathstring./target/outputpath to write machines to
validation.arbitrator.redis-validation-server-config.buffer-readsbooltruebuffer reads (read next while working)
validation.arbitrator.redis-validation-server-config.consumer-config.idletime-to-autoclaimduration5m0sAfter a message spends this amount of time in PEL (Pending Entries List i.e claimed by another consumer but not Acknowledged) it will be allowed to be autoclaimed by other consumers
validation.arbitrator.redis-validation-server-config.consumer-config.response-entry-timeoutduration1h0m0stimeout for response entry
validation.arbitrator.redis-validation-server-config.module-rootsstrings-Supported module root hashes
validation.arbitrator.redis-validation-server-config.redis-urlstring-url of redis server
validation.arbitrator.redis-validation-server-config.stream-prefixstring-prefix for stream name
validation.arbitrator.redis-validation-server-config.stream-timeoutduration10m0sTimeout on polling for existence of redis streams
validation.arbitrator.redis-validation-server-config.workersint-number of validation threads (0 to use number of CPUs)
validation.arbitrator.workersint-number of concurrent validation threads
validation.jit.craneliftbooltrueuse Cranelift instead of LLVM when validating blocks using the jit-accelerated block validator
validation.jit.jit-pathstring-path to jit executable, if empty, attempts to find jit executable relative to nitro binary or in PATH
validation.jit.max-execution-timeduration10m0sif execution time used by a jit wasm exceeds this limit, a rpc error is returned
validation.jit.wasm-memory-usage-limitint4294967296if memory used by a jit wasm exceeds this limit, a warning is logged
validation.jit.workersint-number of concurrent validation threads
validation.use-jitbooltrueuse jit for validation
validation.wasm.allowed-wasm-module-rootsstrings-list of WASM module roots or machine base paths to match against on-chain WasmModuleRoot
validation.wasm.enable-wasmroots-checkbooltrueenable check for compatibility of on-chain WASM module root with node
validation.wasm.root-pathstring-path to machine folders, each containing wasm files (machine.wavm.br, replay.wasm)

ws

Related guide: Configuration system

ws flags (6)
FlagTypeDefaultDescription
ws.addrstring-WS-RPC server listening interface
ws.apistrings[net,web3,eth,arb]APIs offered over the WS-RPC interface
ws.expose-allbool-expose private api via websocket
ws.originsstrings-Origins from which to accept websockets requests
ws.portint8548WS-RPC server listening port
ws.rpcprefixstring-WS path path prefix on which JSON-RPC is served. Use '/' to serve on all paths