Skip to main content

NodeConfig-1

Type Aliases

NodeConfig

type NodeConfig: object;

Nitro node configuration options

Type declaration

MemberTypeDescription
authobject-
auth.addrstringAUTH-RPC server listening interface (default "127.0.0.1")
auth.apistring[]APIs offered over the AUTH-RPC interface (default [validation])
auth.jwtsecretstringPath to file holding JWT secret (32B hex)
auth.originsstring[]Origins from which to accept AUTH requests (default [localhost])
auth.portnumberAUTH-RPC server listening port (default 8549)
blocks-reexecutorobject-
blocks-reexecutor.blocks-per-threadnumberminimum number of blocks to execute per thread. When mode is random this acts as the size of random block range sample (default 10000)
blocks-reexecutor.enablebooleanenables re-execution of a range of blocks against historic state
blocks-reexecutor.end-blocknumberlast block number of the block range for re-execution
blocks-reexecutor.modestringmode 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 (default "random")
blocks-reexecutor.roomnumbernumber of threads to parallelize blocks re-execution (default 12)
blocks-reexecutor.start-blocknumberfirst block number of the block range for re-execution
chainobject-
chain.dev-walletobject-
chain.dev-wallet.accountstringaccount to use (default is first account in keystore)
chain.dev-wallet.only-create-keybooleanif true, creates new key then exits
chain.dev-wallet.passwordstringwallet passphrase (default "PASSWORD_NOT_SET")
chain.dev-wallet.pathnamestringpathname for wallet
chain.dev-wallet.private-keystringprivate key for wallet
chain.idnumberL2 chain ID (determines Arbitrum network)
chain.info-filesstring[]L2 chain info json files
chain.info-ipfs-download-pathstringpath to save temp downloaded file (default "/tmp/")
chain.info-ipfs-urlstringurl to download chain info file
chain.info-jsonstringL2 chain info in json string format
chain.namestringL2 chain name (determines Arbitrum network)
confobject-
conf.dumpbooleanprint out currently active configuration file
conf.env-prefixstringenvironment variables with given prefix will be loaded as configuration values
conf.filestring[]name of configuration file
conf.reload-intervalstringhow often to reload configuration (0=disable periodic reloading)
conf.s3object-
conf.s3.access-keystringS3 access key
conf.s3.bucketstringS3 bucket
conf.s3.object-keystringS3 object key
conf.s3.regionstringS3 region
conf.s3.secret-keystringS3 secret key
conf.stringstringconfiguration as JSON string
executionobject-
execution.cachingobject-
execution.caching.archivebooleanretain past block state
execution.caching.block-agestringminimum age of recent blocks to keep in memory (default 30m0s)
execution.caching.block-countnumberminimum number of recent blocks to keep in memory (default 128)
execution.caching.database-cachenumberamount of memory in megabytes to cache database contents with (default 2048)
execution.caching.max-amount-of-gas-to-skip-state-savingnumbermaximum amount of gas in blocks to skip saving state to Persistent storage (archive node only) -- warning: this option seems to cause issues
execution.caching.max-number-of-blocks-to-skip-state-savingnumbermaximum number of blocks to skip state saving to persistent storage (archive node only) -- warning: this option seems to cause issues
execution.caching.snapshot-cachenumberamount of memory in megabytes to cache state snapshots with (default 400)
execution.caching.snapshot-restore-gas-limitnumbermaximum gas rolled back to recover snapshot (default 300000000000)
execution.caching.trie-clean-cachenumberamount of memory in megabytes to cache unchanged state trie nodes with (default 600)
execution.caching.trie-dirty-cachenumberamount of memory in megabytes to cache state diffs against disk with (larger cache lowers database growth) (default 1024)
execution.caching.trie-time-limitstringmaximum block processing time before trie is written to hard-disk (default 1h0m0s)
execution.dangerousobject-
execution.dangerous.reorg-to-blocknumberDANGEROUS! forces a reorg to an old block height. To be used for testing only. -1 to disable (default -1)
execution.enable-prefetch-blockbooleanenable prefetching of blocks (default true)
execution.forwarderobject-
execution.forwarder.connection-timeoutstringtotal time to wait before cancelling connection (default 30s)
execution.forwarder.idle-connection-timeoutstringtime until idle connections are closed (default 15s)
execution.forwarder.max-idle-connectionsnumbermaximum number of idle connections to keep open (default 1)
execution.forwarder.redis-urlstringthe Redis URL to recomend target via
execution.forwarder.retry-intervalstringminimal time between update retries (default 100ms)
execution.forwarder.update-intervalstringforwarding target update interval (default 1s)
execution.forwarding-targetstringtransaction forwarding target URL, or "null" to disable forwarding (iff not sequencer)
execution.parent-chain-readerobject-
execution.parent-chain-reader.dangerousobject-
execution.parent-chain-reader.dangerous.wait-for-tx-approval-safe-pollstringDangerous! only meant to be used by system tests
execution.parent-chain-reader.enablebooleanenable reader connection (default true)
execution.parent-chain-reader.old-header-timeoutstringwarns if the latest l1 block is at least this old (default 5m0s)
execution.parent-chain-reader.poll-intervalstringinterval when polling endpoint (default 15s)
execution.parent-chain-reader.poll-onlybooleando not attempt to subscribe to header events
execution.parent-chain-reader.subscribe-err-intervalstringinterval for subscribe error (default 5m0s)
execution.parent-chain-reader.tx-timeoutstringtimeout when waiting for a transaction (default 5m0s)
execution.parent-chain-reader.use-finality-databooleanuse l1 data about finalized/safe blocks (default true)
execution.recording-databaseobject-
execution.recording-database.trie-clean-cachenumberlike trie-clean-cache for the separate, recording database (used for validation) (default 16)
execution.recording-database.trie-dirty-cachenumberlike trie-dirty-cache for the separate, recording database (used for validation) (default 1024)
execution.rpcobject-
execution.rpc.allow-methodstring[]list of whitelisted rpc methods
execution.rpc.arbdebugobject-
execution.rpc.arbdebug.block-range-boundnumberbounds the number of blocks arbdebug calls may return (default 256)
execution.rpc.arbdebug.timeout-queue-boundnumberbounds the length of timeout queues arbdebug calls may return (default 512)
execution.rpc.bloom-bits-blocksnumbernumber of blocks a single bloom bit section vector holds (default 16384)
execution.rpc.bloom-confirmsnumbernumber of confirmation blocks before a bloom section is considered final (default 256)
execution.rpc.classic-redirectstringurl to redirect classic requests, use "error:[CODE:]MESSAGE" to return specified error instead of redirecting
execution.rpc.classic-redirect-timeoutstringtimeout for forwarded classic requests, where 0 = no timeout
execution.rpc.evm-timeoutstringtimeout used for eth_call (0=infinite) (default 5s)
execution.rpc.feehistory-max-block-countnumbermax number of blocks a fee history request may cover (default 1024)
execution.rpc.filter-log-cache-sizenumberlog filter system maximum number of cached blocks (default 32)
execution.rpc.filter-timeoutstringlog filter system maximum time filters stay active (default 5m0s)
execution.rpc.gas-capnumbercap on computation gas that can be used in eth_call/estimateGas (0=infinite) (default 50000000)
execution.rpc.max-recreate-state-depthnumbermaximum depth for recreating state, measured in l2 gas (0=don't recreate state, -1=infinite, -2=use default value for archive or non-archive node (whichever is configured)) (default -2)
execution.rpc.tx-allow-unprotectedbooleanallow transactions that aren't EIP-155 replay protected to be submitted over the RPC (default true)
execution.rpc.tx-fee-capnumbercap on transaction fee (in ether) that can be sent via the RPC APIs (0 = no cap) (default 1)
execution.secondary-forwarding-targetstring[]secondary transaction forwarding target URL
execution.sequencerobject-
execution.sequencer.enablebooleanact and post to l1 as sequencer
execution.sequencer.forwarderobject-
execution.sequencer.forwarder.connection-timeoutstringtotal time to wait before cancelling connection (default 30s)
execution.sequencer.forwarder.idle-connection-timeoutstringtime until idle connections are closed (default 1m0s)
execution.sequencer.forwarder.max-idle-connectionsnumbermaximum number of idle connections to keep open (default 100)
execution.sequencer.forwarder.redis-urlstringthe Redis URL to recomend target via
execution.sequencer.forwarder.retry-intervalstringminimal time between update retries (default 100ms)
execution.sequencer.forwarder.update-intervalstringforwarding target update interval (default 1s)
execution.sequencer.max-acceptable-timestamp-deltastringmaximum acceptable time difference between the local time and the latest L1 block's timestamp (default 1h0m0s)
execution.sequencer.max-block-speedstringminimum delay between blocks (sets a maximum speed of block production) (default 250ms)
execution.sequencer.max-revert-gas-rejectnumbermaximum gas executed in a revert for the sequencer to reject the transaction instead of posting it (anti-DOS) (default 31000)
execution.sequencer.max-tx-data-sizenumbermaximum transaction size the sequencer will accept (default 95000)
execution.sequencer.nonce-cache-sizenumbersize of the tx sender nonce cache (default 1024)
execution.sequencer.nonce-failure-cache-expirystringmaximum amount of time to wait for a predecessor before rejecting a tx with nonce too high (default 1s)
execution.sequencer.nonce-failure-cache-sizenumbernumber of transactions with too high of a nonce to keep in memory while waiting for their predecessor (default 1024)
execution.sequencer.queue-sizenumbersize of the pending tx queue (default 1024)
execution.sequencer.queue-timeoutstringmaximum amount of time transaction can wait in queue (default 12s)
execution.sequencer.sender-whiteliststringcomma separated whitelist of authorized senders (if empty, everyone is allowed)
execution.tx-lookup-limitnumberretain the ability to lookup transactions by hash for the past N blocks (0 = all blocks) (default 126230400)
execution.tx-pre-checkerobject-
execution.tx-pre-checker.required-state-agenumberhow long ago should the storage conditions from eth_SendRawTransactionConditional be true, 0 = don't check old state (default 2)
execution.tx-pre-checker.required-state-max-blocksnumbermaximum number of blocks to look back while looking for the <required-state-age> seconds old state, 0 = don't limit the search (default 4)
execution.tx-pre-checker.strictnessnumberhow strict to be when checking txs before forwarding them. 0 = accept anything, 10 = should never reject anything that'd succeed, 20 = likely won't reject anything that'd succeed, 30 = full validation which may reject txs that would succeed
file-loggingobject-
file-logging.buf-sizenumbersize of intermediate log records buffer (default 512)
file-logging.compressbooleanenable compression of old log files (default true)
file-logging.enablebooleanenable logging to file (default true)
file-logging.filestringpath to log file (default "nitro.log")
file-logging.local-timebooleanif true: local time will be used in old log filename timestamps
file-logging.max-agenumbermaximum number of days to retain old log files based on the timestamp encoded in their filename (0 = no limit)
file-logging.max-backupsnumbermaximum number of old log files to retain (0 = no limit) (default 20)
file-logging.max-sizenumberlog file size in Mb that will trigger log file rotation (0 = trigger disabled) (default 5)
graphqlobject-
graphql.corsdomainstring[]Comma separated list of domains from which to accept cross origin requests (browser enforced)
graphql.enablebooleanEnable graphql endpoint on the rpc endpoint
graphql.vhostsstring[]Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard (default [localhost])
httpobject-
http.addrstringHTTP-RPC server listening interface
http.apistring[]APIs offered over the HTTP-RPC interface (default [net,web3,eth,arb])
http.corsdomainstring[]Comma separated list of domains from which to accept cross origin requests (browser enforced)
http.portnumberHTTP-RPC server listening port (default 8547)
http.rpcprefixstringHTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all paths
http.server-timeoutsobject-
http.server-timeouts.idle-timeoutstringthe maximum amount of time to wait for the next request when keep-alives are enabled (http.Server.IdleTimeout) (default 2m0s)
http.server-timeouts.read-header-timeoutstringthe amount of time allowed to read the request headers (http.Server.ReadHeaderTimeout) (default 30s)
http.server-timeouts.read-timeoutstringthe maximum duration for reading the entire request (http.Server.ReadTimeout) (default 30s)
http.server-timeouts.write-timeoutstringthe maximum duration before timing out writes of the response (http.Server.WriteTimeout) (default 30s)
http.vhostsstring[]Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard (default [localhost])
initobject-
init.accounts-per-syncnumberduring init - sync database every X accounts. Lower value for low-memory systems. 0 disables. (default 100000)
init.dev-initbooleaninit with dev data (1 account with balance) instead of file import
init.dev-init-addressstringAddress of dev-account. Leave empty to use the dev-wallet.
init.dev-init-blocknumnumberNumber of preinit blocks. Must exist in ancient database.
init.download-pathstringpath to save temp downloaded file (default "/tmp/")
init.download-pollstringhow long to wait between polling attempts (default 1m0s)
init.emptybooleaninit with empty state
init.forcebooleanif true: in case database exists init code will be reexecuted and genesis block compared to database
init.import-filestringpath for json data to import
init.prunestringpruning for a given use: "full" for full nodes serving RPC requests, or "validator" for validators
init.prune-bloom-sizenumberthe amount of memory in megabytes to use for the pruning bloom filter (higher values prune better) (default 2048)
init.recreate-missing-state-fromnumberblock number to start recreating missing states from (0 = disabled)
init.reset-to-messagenumberforces a reset to an old message height. Also set max-reorg-resequence-depth=0 to force re-reading messages (default -1)
init.then-quitbooleanquit after init is done
init.urlstringurl to download initializtion data - will poll if download fails
ipcobject-
ipc.pathstringRequested location to place the IPC endpoint. An empty path disables IPC.
log-levelnumberlog level (default 3)
log-typestringlog type (plaintext or json) (default "plaintext")
metricsbooleanenable metrics
metrics-serverobject-
metrics-server.addrstringmetrics server address (default "127.0.0.1")
metrics-server.portnumbermetrics server port (default 6070)
metrics-server.update-intervalstringmetrics server update interval (default 3s)
nodeobject-
node.batch-posterobject-
node.batch-poster.compression-levelnumberbatch compression level (default 11)
node.batch-poster.das-retention-periodstringIn AnyTrust mode, the period which DASes are requested to retain the stored batches. (default 360h0m0s)
node.batch-poster.data-posterobject-
node.batch-poster.data-poster.allocate-mempool-balancebooleanif true, don't put transactions in the mempool that spend a total greater than the batch poster's balance (default true)
node.batch-poster.data-poster.blob-tx-replacement-timesstringcomma-separated list of durations since first posting a blob transaction to attempt a replace-by-fee (default "5m,10m,30m,1h,4h,8h,16h,22h")
node.batch-poster.data-poster.dangerousobject-
node.batch-poster.data-poster.dangerous.clear-dbstoragebooleanclear database storage
node.batch-poster.data-poster.elapsed-time-basestringunit to measure the time elapsed since creation of transaction used for maximum fee cap calculation (default 10m0s)
node.batch-poster.data-poster.elapsed-time-importancenumberweight given to the units of time elapsed used for maximum fee cap calculation (default 10)
node.batch-poster.data-poster.external-signerobject-
node.batch-poster.data-poster.external-signer.addressstringexternal signer address
node.batch-poster.data-poster.external-signer.client-certstringrpc client cert
node.batch-poster.data-poster.external-signer.client-private-keystringrpc client private key
node.batch-poster.data-poster.external-signer.methodstringexternal signer method (default "eth_signTransaction")
node.batch-poster.data-poster.external-signer.root-castringexternal signer root CA
node.batch-poster.data-poster.external-signer.urlstringexternal signer url
node.batch-poster.data-poster.legacy-storage-encodingbooleanencodes items in a legacy way (as it was before dropping generics)
node.batch-poster.data-poster.max-blob-tx-tip-cap-gweinumberthe maximum tip cap to post EIP-4844 blob carrying transactions at (default 1)
node.batch-poster.data-poster.max-fee-bid-multiple-bipsnumberthe maximum multiple of the current price to bid for a transaction's fees (may be exceeded due to min rbf increase, 0 = unlimited) (default 100000)
node.batch-poster.data-poster.max-fee-cap-formulastringmathematical 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-transactionsnumberthe maximum number of transactions to have queued in the mempool at once (0 = unlimited) (default 18)
node.batch-poster.data-poster.max-mempool-weightnumberthe maximum number of weight (weight = min(1, tx.blobs)) to have queued in the mempool at once (0 = unlimited) (default 18)
node.batch-poster.data-poster.max-queued-transactionsnumberthe maximum number of unconfirmed transactions to track at once (0 = unlimited)
node.batch-poster.data-poster.max-tip-cap-gweinumberthe maximum tip cap to post transactions at (default 5)
node.batch-poster.data-poster.min-blob-tx-tip-cap-gweinumberthe minimum tip cap to post EIP-4844 blob carrying transactions at (default 1)
node.batch-poster.data-poster.min-tip-cap-gweinumberthe minimum tip cap to post transactions at (default 0.05)
node.batch-poster.data-poster.nonce-rbf-soft-confsnumberthe maximum probable reorg depth, used to determine when a transaction will no longer likely need replaced-by-fee (default 1)
node.batch-poster.data-poster.redis-signerobject-
node.batch-poster.data-poster.redis-signer.dangerousobject-
node.batch-poster.data-poster.redis-signer.dangerous.disable-signature-verificationbooleandisable message signature verification
node.batch-poster.data-poster.redis-signer.fallback-verification-keystringa fallback key used for message verification
node.batch-poster.data-poster.redis-signer.signing-keystringa 32-byte (64-character) hex string used to sign messages, or a path to a file containing it
node.batch-poster.data-poster.replacement-timesstringcomma-separated list of durations since first posting to attempt a replace-by-fee (default "5m,10m,20m,30m,1h,2h,4h,6h,8h,12h,16h,18h,20h,22h")
node.batch-poster.data-poster.target-price-gweinumberthe target price to use for maximum fee cap calculation (default 60)
node.batch-poster.data-poster.urgency-gweinumberthe urgency to use for maximum fee cap calculation (default 2)
node.batch-poster.data-poster.use-db-storagebooleanuses database storage when enabled (default true)
node.batch-poster.data-poster.use-noop-storagebooleanuses noop storage, it doesn't store anything
node.batch-poster.data-poster.wait-for-l1-finalitybooleanonly treat a transaction as confirmed after L1 finality has been achieved (recommended) (default true)
node.batch-poster.disable-das-fallback-store-data-on-chainbooleanIf unable to batch to DAS, disable fallback storing data on chain
node.batch-poster.enablebooleanenable posting batches to l1
node.batch-poster.error-delaystringhow long to delay after error posting batch (default 10s)
node.batch-poster.extra-batch-gasnumberuse this much more gas than estimation says is necessary to post batches (default 50000)
node.batch-poster.gas-estimate-base-fee-multiple-bipsnumberfor gas estimation, use this multiple of the basefee (measured in basis points) as the max fee per gas (default 15000)
node.batch-poster.gas-refunder-addressstringThe gas refunder contract address (optional)
node.batch-poster.ignore-blob-pricebooleanif 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-boundstringonly 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-bypassstringpost batches even if not within the layer 1 future bounds if we're within this margin of the max delay (default 1h0m0s)
node.batch-poster.max-4844-batch-sizenumbermaximum 4844 blob enabled batch size (default 779288)
node.batch-poster.max-delaystringmaximum batch posting delay (default 1h0m0s)
node.batch-poster.max-sizenumbermaximum batch size (default 100000)
node.batch-poster.parent-chain-walletobject-
node.batch-poster.parent-chain-wallet.accountstringaccount to use (default is first account in keystore)
node.batch-poster.parent-chain-wallet.only-create-keybooleanif true, creates new key then exits
node.batch-poster.parent-chain-wallet.passwordstringwallet passphrase (default "PASSWORD_NOT_SET")
node.batch-poster.parent-chain-wallet.pathnamestringpathname for wallet (default "batch-poster-wallet")
node.batch-poster.parent-chain-wallet.private-keystringprivate key for wallet
node.batch-poster.poll-intervalstringhow long to wait after no batches are ready to be posted before checking again (default 10s)
node.batch-poster.post-4844-blobsbooleanif the parent chain supports 4844 blobs and they're well priced, post EIP-4844 blobs
node.batch-poster.redis-lockobject-
node.batch-poster.redis-lock.background-lockbooleanshould node always try grabing lock in background
node.batch-poster.redis-lock.enablebooleanif false, always treat this as locked and don't write the lock to redis (default true)
node.batch-poster.redis-lock.keystringkey for lock
node.batch-poster.redis-lock.lockout-durationstringhow long lock is held (default 1m0s)
node.batch-poster.redis-lock.my-idstringthis node's id prefix when acquiring the lock (optional)
node.batch-poster.redis-lock.refresh-durationstringhow long between consecutive calls to redis (default 10s)
node.batch-poster.redis-urlstringif non-empty, the Redis URL to store queued transactions in
node.batch-poster.use-access-listsbooleanpost batches with access lists to reduce gas usage (disabled for L3s) (default true)
node.batch-poster.wait-for-max-delaybooleanwait for the max batch delay, even if the batch is full
node.block-validatorobject-
node.block-validator.current-module-rootstringcurrent wasm module root ('current' read from chain, 'latest' from machines/latest dir, or provide hash) (default "current")
node.block-validator.dangerousobject-
node.block-validator.dangerous.reset-block-validationbooleanresets block-by-block validation, starting again at genesis
node.block-validator.enablebooleanenable block-by-block validation
node.block-validator.failure-is-fatalbooleanfailing a validation is treated as a fatal error (default true)
node.block-validator.forward-blocksnumberprepare entries for up to that many blocks ahead of validation (small footprint) (default 1024)
node.block-validator.memory-free-limitstringminimum free-memory limit after reaching which the blockvalidator pauses validation. Enabled by default as 1GB, to disable provide empty string (default "default")
node.block-validator.pending-upgrade-module-rootstringpending upgrade wasm module root to additionally validate (hash, 'latest' or empty) (default "latest")
node.block-validator.prerecorded-blocksnumberrecord that many blocks ahead of validation (larger footprint) (default 24)
node.block-validator.validation-pollstringpoll time to check validations (default 1s)
node.block-validator.validation-serverobject-
node.block-validator.validation-server.arg-log-limitnumberlimit size of arguments in log entries (default 2048)
node.block-validator.validation-server.connection-waitstringhow long to wait for initial connection
node.block-validator.validation-server.jwtsecretstringpath to file with jwtsecret for validation - ignored if url is self or self-auth
node.block-validator.validation-server.retriesnumbernumber of retries in case of failure(0 mean one attempt) (default 3)
node.block-validator.validation-server.retry-delaystringdelay between retries
node.block-validator.validation-server.retry-errorsstringErrors matching this regular expression are automatically retried (default "websocket: close.|dial tcp .|.*i/o timeout|.*connection reset by peer|.*connection refused")
node.block-validator.validation-server.timeoutstringper-response timeout (0-disabled)
node.block-validator.validation-server.urlstringurl of server, use self for loopback websocket, self-auth for loopback with authentication (default "self-auth")
node.block-validator.validation-server-configs-liststringarray of validation rpc configs given as a json string. time duration should be supplied in number indicating nanoseconds (default "default")
node.dangerousobject-
node.dangerous.disable-blob-readerbooleanDANGEROUS! disables the EIP-4844 blob reader, which is necessary to read batches
node.dangerous.no-l1-listenerbooleanDANGEROUS! disables listening to L1. To be used in test nodes only
node.dangerous.no-sequencer-coordinatorbooleanDANGEROUS! allows sequencing without sequencer-coordinator
node.data-availabilityobject-
node.data-availability.enablebooleanenable Anytrust Data Availability mode
node.data-availability.ipfs-storageobject-
node.data-availability.ipfs-storage.enablebooleanenable storage/retrieval of sequencer batch data from IPFS
node.data-availability.ipfs-storage.peersstring[]list of IPFS peers to connect to, eg /ip4/1.2.3.4/tcp/12345/p2p/abc...xyz
node.data-availability.ipfs-storage.pin-after-getbooleanpin sequencer batch data in IPFS (default true)
node.data-availability.ipfs-storage.pin-percentagenumberpercent of sequencer batch data to pin, as a floating point number in the range 0.0 to 100.0 (default 100)
node.data-availability.ipfs-storage.profilesstringcomma separated list of IPFS profiles to use, see https://docs.ipfs.tech/how-to/default-profile
node.data-availability.ipfs-storage.read-timeoutstringtimeout for IPFS reads, since by default it will wait forever. Treat timeout as not found (default 1m0s)
node.data-availability.ipfs-storage.repo-dirstringdirectory to use to store the local IPFS repo
node.data-availability.panic-on-errorbooleanwhether the Data Availability Service should fail immediately on errors (not recommended)
node.data-availability.parent-chain-connection-attemptsnumberparent 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 (default 15)
node.data-availability.parent-chain-node-urlstringURL for parent chain node, only used in standalone daserver; when running as part of a node that node's L1 configuration is used
node.data-availability.request-timeoutstringData Availability Service timeout duration for Store requests (default 5s)
node.data-availability.rest-aggregatorobject-
node.data-availability.rest-aggregator.enablebooleanenable 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-statsnumbernumber 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 (default 20)
node.data-availability.rest-aggregator.online-url-liststringa 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-intervalstringtime interval to periodically fetch url list from online-url-list (default 1h0m0s)
node.data-availability.rest-aggregator.simple-explore-exploit-strategyobject-
node.data-availability.rest-aggregator.simple-explore-exploit-strategy.exploit-iterationsnumbernumber 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 (default 1000)
node.data-availability.rest-aggregator.simple-explore-exploit-strategy.explore-iterationsnumbernumber 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 (default 20)
node.data-availability.rest-aggregator.strategystringstrategy to use to determine order and parallelism of calling REST endpoint URLs; valid options are 'simple-explore-exploit' (default "simple-explore-exploit")
node.data-availability.rest-aggregator.strategy-update-intervalstringhow frequently to update the strategy with endpoint latency and error rate data (default 10s)
node.data-availability.rest-aggregator.sync-to-storageobject-
node.data-availability.rest-aggregator.sync-to-storage.check-already-existsbooleancheck if the data already exists in this DAS's storage. Must be disabled for fast sync with an IPFS backend (default true)
node.data-availability.rest-aggregator.sync-to-storage.delay-on-errorstringtime to wait if encountered an error before retrying (default 1s)
node.data-availability.rest-aggregator.sync-to-storage.eagerbooleaneagerly 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-blocknumberwhen 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-errorsbooleanlog only on failures to write when syncing; otherwise treat it as an error (default true)
node.data-availability.rest-aggregator.sync-to-storage.parent-chain-blocks-per-readnumberwhen eagerly syncing, max l1 blocks to read per poll (default 100)
node.data-availability.rest-aggregator.sync-to-storage.retention-periodstringperiod to retain synced data (defaults to forever) (default 2562047h47m16.854775807s)
node.data-availability.rest-aggregator.sync-to-storage.state-dirstringdirectory 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.urlsstring[]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-nextstringtime 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 (default 2s)
node.data-availability.rpc-aggregatorobject-
node.data-availability.rpc-aggregator.assumed-honestnumberNumber 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.backendsstringJSON RPC backend configuration
node.data-availability.rpc-aggregator.enablebooleanenable storage/retrieval 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-addressstringparent chain address of SequencerInbox contract
node.delayed-sequencerobject-
node.delayed-sequencer.enablebooleanenable delayed sequencer
node.delayed-sequencer.finalize-distancenumberhow many blocks in the past L1 block is considered final (ignored when using Merge finality) (default 20)
node.delayed-sequencer.require-full-finalitybooleanwhether to wait for full finality before sequencing delayed messages
node.delayed-sequencer.use-merge-finalitybooleanwhether to use The Merge's notion of finality before sequencing delayed messages (default true)
node.feedobject-
node.feed.inputobject-
node.feed.input.enable-compressionbooleanenable per message deflate compression support (default true)
node.feed.input.reconnect-initial-backoffstringinitial duration to wait before reconnect (default 1s)
node.feed.input.reconnect-maximum-backoffstringmaximum duration to wait before reconnect (default 1m4s)
node.feed.input.require-chain-idbooleanrequire chain id to be present on connect
node.feed.input.require-feed-versionbooleanrequire feed version to be present on connect
node.feed.input.secondary-urlstring[]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.timeoutstringduration to wait before timing out connection to sequencer feed (default 20s)
node.feed.input.urlstring[]list of primary URLs of sequencer feed source
node.feed.input.verifyobject-
node.feed.input.verify.accept-sequencerbooleanaccept verified message from sequencer (default true)
node.feed.input.verify.allowed-addressesstring[]a list of allowed addresses
node.feed.input.verify.dangerousobject-
node.feed.input.verify.dangerous.accept-missingbooleanaccept empty as valid signature (default true)
node.feed.outputobject-
node.feed.output.addrstringaddress to bind the relay feed output to
node.feed.output.backlogobject-
node.feed.output.backlog.segment-limitnumberthe maximum number of messages each segment within the backlog can contain (default 240)
node.feed.output.client-delaystringdelay the first messages sent to each client by this amount
node.feed.output.client-timeoutstringduration to wait before timing out connections to client (default 15s)
node.feed.output.connection-limitsobject-
node.feed.output.connection-limits.enablebooleanenable broadcaster per-client connection limiting
node.feed.output.connection-limits.per-ip-limitnumberlimit clients, as identified by IPv4/v6 address, to this many connections to this relay (default 5)
node.feed.output.connection-limits.per-ipv6-cidr-48-limitnumberlimit ipv6 clients, as identified by IPv6 address masked with /48, to this many connections to this relay (default 20)
node.feed.output.connection-limits.per-ipv6-cidr-64-limitnumberlimit ipv6 clients, as identified by IPv6 address masked with /64, to this many connections to this relay (default 10)
node.feed.output.connection-limits.reconnect-cooldown-periodstringtime to wait after a relay client disconnects before the disconnect is registered with respect to the limit for this client
node.feed.output.disable-signingbooleandon't sign feed messages (default true)
node.feed.output.enablebooleanenable broadcaster
node.feed.output.enable-compressionbooleanenable per message deflate compression support
node.feed.output.handshake-timeoutstringduration to wait before timing out HTTP to WS upgrade (default 1s)
node.feed.output.limit-catchupbooleanonly supply catchup buffer if requested sequence number is reasonable
node.feed.output.log-connectbooleanlog every client connect
node.feed.output.log-disconnectbooleanlog every client disconnect
node.feed.output.max-catchupnumberthe maximum size of the catchup buffer (-1 means unlimited) (default -1)
node.feed.output.max-send-queuenumbermaximum number of messages allowed to accumulate before client is disconnected (default 4096)
node.feed.output.pingstringduration for ping interval (default 5s)
node.feed.output.portstringport to bind the relay feed output to (default "9642")
node.feed.output.queuenumberqueue size for HTTP to WS upgrade (default 100)
node.feed.output.read-timeoutstringduration to wait before timing out reading data (i.e. pings) from clients (default 1s)
node.feed.output.require-compressionbooleanrequire clients to use compression
node.feed.output.require-versionbooleandon't connect if client version not present
node.feed.output.signedbooleansign broadcast messages
node.feed.output.workersnumbernumber of threads to reserve for HTTP to WS upgrade (default 100)
node.feed.output.write-timeoutstringduration to wait before timing out writing data to clients (default 2s)
node.inbox-readerobject-
node.inbox-reader.check-delaystringthe maximum time to wait between inbox checks (if not enough new blocks are found) (default 1m0s)
node.inbox-reader.default-blocks-to-readnumberthe default number of blocks to read at once (will vary based on traffic by default) (default 100)
node.inbox-reader.delay-blocksnumbernumber of latest blocks to ignore to reduce reorgs
node.inbox-reader.hard-reorgbooleanerase future transactions in addition to overwriting existing ones on reorg
node.inbox-reader.max-blocks-to-readnumberif adjust-blocks-to-read is enabled, the maximum number of blocks to read at once (default 2000)
node.inbox-reader.min-blocks-to-readnumberthe minimum number of blocks to read at once (when caught up lowers load on L1) (default 1)
node.inbox-reader.read-modestringmode 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 (default "latest")
node.inbox-reader.target-messages-readnumberif adjust-blocks-to-read is enabled, the target number of messages to read at once (default 500)
node.maintenanceobject-
node.maintenance.lockobject-
node.maintenance.lock.background-lockbooleanshould node always try grabing lock in background
node.maintenance.lock.enablebooleanif false, always treat this as locked and don't write the lock to redis (default true)
node.maintenance.lock.keystringkey for lock
node.maintenance.lock.lockout-durationstringhow long lock is held (default 1m0s)
node.maintenance.lock.my-idstringthis node's id prefix when acquiring the lock (optional)
node.maintenance.lock.refresh-durationstringhow long between consecutive calls to redis (default 10s)
node.maintenance.time-of-daystringUTC 24-hour time of day to run maintenance (currently only db compaction) at (e.g. 15:00)
node.message-prunerobject-
node.message-pruner.enablebooleanenable message pruning (default true)
node.message-pruner.min-batches-leftnumbermin number of batches not pruned (default 2)
node.message-pruner.prune-intervalstringinterval for running message pruner (default 1m0s)
node.parent-chain-readerobject-
node.parent-chain-reader.dangerousobject-
node.parent-chain-reader.dangerous.wait-for-tx-approval-safe-pollstringDangerous! only meant to be used by system tests
node.parent-chain-reader.enablebooleanenable reader connection (default true)
node.parent-chain-reader.old-header-timeoutstringwarns if the latest l1 block is at least this old (default 5m0s)
node.parent-chain-reader.poll-intervalstringinterval when polling endpoint (default 15s)
node.parent-chain-reader.poll-onlybooleando not attempt to subscribe to header events
node.parent-chain-reader.subscribe-err-intervalstringinterval for subscribe error (default 5m0s)
node.parent-chain-reader.tx-timeoutstringtimeout when waiting for a transaction (default 5m0s)
node.parent-chain-reader.use-finality-databooleanuse l1 data about finalized/safe blocks (default true)
node.seq-coordinatorobject-
node.seq-coordinator.chosen-healthcheck-addrstringif non-empty, launch an HTTP service binding to this address that returns status code 200 when chosen and 503 otherwise
node.seq-coordinator.enablebooleanenable sequence coordinator
node.seq-coordinator.handoff-timeoutstringthe maximum amount of time to spend waiting for another sequencer to accept the lockout when handing it off on shutdown or db compaction (default 30s)
node.seq-coordinator.lockout-durationstring(default 1m0s)
node.seq-coordinator.lockout-sparestring(default 30s)
node.seq-coordinator.msg-per-pollnumberwill only be marked as wanting the lockout if not too far behind (default 2000)
node.seq-coordinator.my-urlstringurl for this sequencer if it is the chosen (default "<?INVALID-URL?>")
node.seq-coordinator.redis-urlstringthe Redis URL to coordinate via
node.seq-coordinator.release-retriesnumberthe number of times to retry releasing the wants lockout and chosen one status on shutdown (default 4)
node.seq-coordinator.retry-intervalstring(default 50ms)
node.seq-coordinator.safe-shutdown-delaystringif non-zero will add delay after transferring control (default 5s)
node.seq-coordinator.seq-num-durationstring(default 24h0m0s)
node.seq-coordinator.signerobject-
node.seq-coordinator.signer.ecdsaobject-
node.seq-coordinator.signer.ecdsa.accept-sequencerbooleanaccept verified message from sequencer (default true)
node.seq-coordinator.signer.ecdsa.allowed-addressesstring[]a list of allowed addresses
node.seq-coordinator.signer.ecdsa.dangerousobject-
node.seq-coordinator.signer.ecdsa.dangerous.accept-missingbooleanaccept empty as valid signature (default true)
node.seq-coordinator.signer.symmetricobject-
node.seq-coordinator.signer.symmetric.dangerousobject-
node.seq-coordinator.signer.symmetric.dangerous.disable-signature-verificationbooleandisable message signature verification
node.seq-coordinator.signer.symmetric.fallback-verification-keystringa fallback key used for message verification
node.seq-coordinator.signer.symmetric.signing-keystringa 32-byte (64-character) hex string used to sign messages, or a path to a file containing it
node.seq-coordinator.signer.symmetric-fallbackbooleanif to fall back to symmetric hmac
node.seq-coordinator.signer.symmetric-signbooleanif to sign with symmetric hmac
node.seq-coordinator.update-intervalstring(default 250ms)
node.sequencerbooleanenable sequencer
node.stakerobject-
node.staker.confirmation-blocksnumberconfirmation blocks (default 12)
node.staker.contract-wallet-addressstringvalidator smart contract wallet public address
node.staker.dangerousobject-
node.staker.dangerous.ignore-rollup-wasm-module-rootbooleanDANGEROUS! make assertions even when the wasm module root is wrong
node.staker.dangerous.without-block-validatorbooleanDANGEROUS! allows running an L1 validator without a block validator
node.staker.data-posterobject-
node.staker.data-poster.allocate-mempool-balancebooleanif true, don't put transactions in the mempool that spend a total greater than the batch poster's balance (default true)
node.staker.data-poster.blob-tx-replacement-timesstringcomma-separated list of durations since first posting a blob transaction to attempt a replace-by-fee (default "5m,10m,30m,1h,4h,8h,16h,22h")
node.staker.data-poster.dangerousobject-
node.staker.data-poster.dangerous.clear-dbstoragebooleanclear database storage
node.staker.data-poster.elapsed-time-basestringunit to measure the time elapsed since creation of transaction used for maximum fee cap calculation (default 10m0s)
node.staker.data-poster.elapsed-time-importancenumberweight given to the units of time elapsed used for maximum fee cap calculation (default 10)
node.staker.data-poster.external-signerobject-
node.staker.data-poster.external-signer.addressstringexternal signer address
node.staker.data-poster.external-signer.client-certstringrpc client cert
node.staker.data-poster.external-signer.client-private-keystringrpc client private key
node.staker.data-poster.external-signer.methodstringexternal signer method (default "eth_signTransaction")
node.staker.data-poster.external-signer.root-castringexternal signer root CA
node.staker.data-poster.external-signer.urlstringexternal signer url
node.staker.data-poster.legacy-storage-encodingbooleanencodes items in a legacy way (as it was before dropping generics)
node.staker.data-poster.max-blob-tx-tip-cap-gweinumberthe maximum tip cap to post EIP-4844 blob carrying transactions at (default 1)
node.staker.data-poster.max-fee-bid-multiple-bipsnumberthe maximum multiple of the current price to bid for a transaction's fees (may be exceeded due to min rbf increase, 0 = unlimited) (default 100000)
node.staker.data-poster.max-fee-cap-formulastringmathematical 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-transactionsnumberthe maximum number of transactions to have queued in the mempool at once (0 = unlimited) (default 1)
node.staker.data-poster.max-mempool-weightnumberthe maximum number of weight (weight = min(1, tx.blobs)) to have queued in the mempool at once (0 = unlimited) (default 1)
node.staker.data-poster.max-queued-transactionsnumberthe maximum number of unconfirmed transactions to track at once (0 = unlimited)
node.staker.data-poster.max-tip-cap-gweinumberthe maximum tip cap to post transactions at (default 5)
node.staker.data-poster.min-blob-tx-tip-cap-gweinumberthe minimum tip cap to post EIP-4844 blob carrying transactions at (default 1)
node.staker.data-poster.min-tip-cap-gweinumberthe minimum tip cap to post transactions at (default 0.05)
node.staker.data-poster.nonce-rbf-soft-confsnumberthe maximum probable reorg depth, used to determine when a transaction will no longer likely need replaced-by-fee (default 1)
node.staker.data-poster.redis-signerobject-
node.staker.data-poster.redis-signer.dangerousobject-
node.staker.data-poster.redis-signer.dangerous.disable-signature-verificationbooleandisable message signature verification
node.staker.data-poster.redis-signer.fallback-verification-keystringa fallback key used for message verification
node.staker.data-poster.redis-signer.signing-keystringa 32-byte (64-character) hex string used to sign messages, or a path to a file containing it
node.staker.data-poster.replacement-timesstringcomma-separated list of durations since first posting to attempt a replace-by-fee (default "5m,10m,20m,30m,1h,2h,4h,6h,8h,12h,16h,18h,20h,22h")
node.staker.data-poster.target-price-gweinumberthe target price to use for maximum fee cap calculation (default 60)
node.staker.data-poster.urgency-gweinumberthe urgency to use for maximum fee cap calculation (default 2)
node.staker.data-poster.use-db-storagebooleanuses database storage when enabled (default true)
node.staker.data-poster.use-noop-storagebooleanuses noop storage, it doesn't store anything
node.staker.data-poster.wait-for-l1-finalitybooleanonly treat a transaction as confirmed after L1 finality has been achieved (recommended) (default true)
node.staker.disable-challengebooleandisable validator challenge
node.staker.enablebooleanenable validator (default true)
node.staker.extra-gasnumberuse this much more gas than estimation says is necessary to post transactions (default 50000)
node.staker.gas-refunder-addressstringThe gas refunder contract address (optional)
node.staker.make-assertion-intervalstringif configured with the makeNodes strategy, how often to create new assertions (bypassed in case of a dispute) (default 1h0m0s)
node.staker.only-create-wallet-contractbooleanonly create smart wallet contract and exit
node.staker.parent-chain-walletobject-
node.staker.parent-chain-wallet.accountstringaccount to use (default is first account in keystore)
node.staker.parent-chain-wallet.only-create-keybooleanif true, creates new key then exits
node.staker.parent-chain-wallet.passwordstringwallet passphrase (default "PASSWORD_NOT_SET")
node.staker.parent-chain-wallet.pathnamestringpathname for wallet (default "validator-wallet")
node.staker.parent-chain-wallet.private-keystringprivate key for wallet
node.staker.posting-strategyobject-
node.staker.posting-strategy.high-gas-delay-blocksnumberhigh gas delay blocks
node.staker.posting-strategy.high-gas-thresholdnumberhigh gas threshold
node.staker.redis-urlstringredis url for L1 validator
node.staker.staker-intervalstringhow often the L1 validator should check the status of the L1 rollup and maybe take action with its stake (default 1m0s)
node.staker.start-validation-from-stakedbooleanassume staked nodes are valid (default true)
node.staker.strategystringL1 validator strategy, either watchtower, defensive, stakeLatest, or makeNodes (default "Watchtower")
node.staker.use-smart-contract-walletbooleanuse a smart contract wallet instead of an EOA address
node.sync-monitorobject-
node.sync-monitor.block-build-lagnumberallowed lag between messages read and blocks built (default 20)
node.sync-monitor.block-build-sequencer-inbox-lagnumberallowed lag between messages read from sequencer inbox and blocks built
node.sync-monitor.coordinator-msg-lagnumberallowed lag between local and remote messages (default 15)
node.sync-monitor.finalized-block-wait-for-block-validatorbooleanwait for block validator to complete before returning finalized block number
node.sync-monitor.safe-block-wait-for-block-validatorbooleanwait for block validator to complete before returning safe block number
node.transaction-streamerobject-
node.transaction-streamer.execute-message-loop-delaystringdelay when polling calls to execute messages (default 100ms)
node.transaction-streamer.max-broadcaster-queue-sizenumbermaximum cache of pending broadcaster messages (default 50000)
node.transaction-streamer.max-reorg-resequence-depthnumbermaximum number of messages to attempt to resequence on reorg (0 = never resequence, -1 = always resequence) (default 1024)
p2pobject-
p2p.bootnodesstring[]P2P bootnodes
p2p.bootnodes-v5string[]P2P bootnodes v5
p2p.discovery-v4booleanP2P discovery v4
p2p.discovery-v5booleanP2P discovery v5
p2p.listen-addrstringP2P listen address
p2p.max-peersnumberP2P max peers (default 50)
p2p.no-dialbooleanP2P no dial (default true)
p2p.no-discoverybooleanP2P no discovery (default true)
parent-chainobject-
parent-chain.blob-clientobject-
parent-chain.blob-client.authorizationstringValue to send with the HTTP Authorization: header for Beacon REST requests, must include both scheme and scheme parameters
parent-chain.blob-client.beacon-urlstringBeacon Chain RPC URL to use for fetching blobs (normally on port 3500)
parent-chain.blob-client.blob-directorystringFull path of the directory to save fetched blobs
parent-chain.blob-client.secondary-beacon-urlstringBackup beacon Chain RPC URL to use for fetching blobs (normally on port 3500) when unable to fetch from primary
parent-chain.connectionobject-
parent-chain.connection.arg-log-limitnumberlimit size of arguments in log entries (default 2048)
parent-chain.connection.connection-waitstringhow long to wait for initial connection (default 1m0s)
parent-chain.connection.jwtsecretstringpath to file with jwtsecret for validation - ignored if url is self or self-auth
parent-chain.connection.retriesnumbernumber of retries in case of failure(0 mean one attempt) (default 2)
parent-chain.connection.retry-delaystringdelay between retries
parent-chain.connection.retry-errorsstringErrors matching this regular expression are automatically retried
parent-chain.connection.timeoutstringper-response timeout (0-disabled) (default 1m0s)
parent-chain.connection.urlstringurl of server, use self for loopback websocket, self-auth for loopback with authentication
parent-chain.idnumberif set other than 0, will be used to validate database and L1 connection
parent-chain.walletobject-
parent-chain.wallet.accountstringaccount to use (default is first account in keystore)
parent-chain.wallet.only-create-keybooleanif true, creates new key then exits
parent-chain.wallet.passwordstringwallet passphrase (default "PASSWORD_NOT_SET")
parent-chain.wallet.pathnamestringpathname for wallet (default "wallet")
parent-chain.wallet.private-keystringprivate key for wallet
persistentobject-
persistent.ancientstringdirectory of ancient where the chain freezer can be opened
persistent.chainstringdirectory to store chain state
persistent.db-enginestringbacking database implementation to use ('leveldb' or 'pebble') (default "leveldb")
persistent.global-configstringdirectory to store global config (default ".arbitrum")
persistent.handlesnumbernumber of file descriptor handles to use for the database (default 512)
persistent.log-dirstringdirectory to store log file
pprofbooleanenable pprof
pprof-cfgobject-
pprof-cfg.addrstringpprof server address (default "127.0.0.1")
pprof-cfg.portnumberpprof server port (default 6071)
rpcobject-
rpc.batch-request-limitnumberthe maximum number of requests in a batch (0 means no limit) (default 1000)
rpc.max-batch-response-sizenumberthe maximum response size for a JSON-RPC request measured in bytes (0 means no limit) (default 10000000)
validationobject-
validation.api-authbooleanvalidate is an authenticated API (default true)
validation.api-publicbooleanvalidate is a public API
validation.arbitratorobject-
validation.arbitrator.executionobject-
validation.arbitrator.execution.cached-challenge-machinesnumberhow many machines to store in cache while working on a challenge (should be even) (default 4)
validation.arbitrator.execution.initial-stepsnumberinitial steps between machines (default 100000)
validation.arbitrator.execution-run-timeoutstringtimeout before discarding execution run (default 15m0s)
validation.arbitrator.output-pathstringpath to write machines to (default "./target/output")
validation.arbitrator.workersnumbernumber of concurrent validation threads
validation.jitobject-
validation.jit.craneliftbooleanuse Cranelift instead of LLVM when validating blocks using the jit-accelerated block validator (default true)
validation.jit.wasm-memory-usage-limitnumberif memory used by a jit wasm exceeds this limit, a warning is logged (default 4294967296)
validation.jit.workersnumbernumber of concurrent validation threads
validation.use-jitbooleanuse jit for validation (default true)
validation.wasmobject-
validation.wasm.allowed-wasm-module-rootsstring[]list of WASM module roots to check if the on-chain WASM module root belongs to on node startup
validation.wasm.enable-wasmroots-checkbooleanenable check for compatibility of on-chain WASM module root with node (default true)
validation.wasm.root-pathstringpath to machine folders, each containing wasm files (machine.wavm.br, replay.wasm)
wsobject-
ws.addrstringWS-RPC server listening interface
ws.apistring[]APIs offered over the WS-RPC interface (default [net,web3,eth,arb])
ws.expose-allbooleanexpose private api via websocket
ws.originsstring[]Origins from which to accept websockets requests
ws.portnumberWS-RPC server listening port (default 8548)
ws.rpcprefixstringWS path path prefix on which JSON-RPC is served. Use '/' to serve on all paths

Source

src/types/NodeConfig.generated.ts:10