diff --git a/src/types/NodeConfig.generated.ts b/src/types/NodeConfig.generated.ts index 4e0d4c5e..ed43433c 100644 --- a/src/types/NodeConfig.generated.ts +++ b/src/types/NodeConfig.generated.ts @@ -2,8 +2,8 @@ // // THIS FILE IS AUTOMATICALLY GENERATED AND SHOULD NOT BE EDITED MANUALLY // -// IMAGE: offchainlabs/nitro-node:v3.6.0-fc07dd2 -// TIMESTAMP: 2025-04-30T12:27:36.604Z +// IMAGE: offchainlabs/nitro-node:v3.9.5-66e42c4 +// TIMESTAMP: 2026-02-10T10:40:31.882Z // // --- /** Nitro node configuration options */ @@ -29,10 +29,12 @@ export type NodeConfig = { 'min-blocks-per-thread'?: number; /** mode 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") */ 'mode'?: string; - /** number of threads to parallelize blocks re-execution (default 16) */ + /** number of threads to parallelize blocks re-execution (default 12) */ 'room'?: number; /** memory allowance (MB) to use for caching trie nodes in memory */ 'trie-clean-limit'?: number; + /** if set, validate the sum of multi-gas dimensions match the single-gas */ + 'validate-multigas'?: boolean; }; 'chain'?: { 'dev-wallet'?: { @@ -98,10 +100,16 @@ export type NodeConfig = { 'database-cache'?: number; /** disable metrics collection for the stylus cache */ 'disable-stylus-cache-metrics-collection'?: boolean; + /** enable recording of preimages */ + 'enable-preimages'?: boolean; + /** maximum number of blocks rolled back to recover chain head (0 = use geth default limit) (default 2419200) */ + 'head-rewind-blocks-limit'?: number; /** maximum amount of gas in blocks to skip saving state to Persistent storage (archive node only) -- warning: this option seems to cause issues */ 'max-amount-of-gas-to-skip-state-saving'?: number; /** maximum number of blocks to skip state saving to persistent storage (archive node only) -- warning: this option seems to cause issues */ 'max-number-of-blocks-to-skip-state-saving'?: number; + /** maximum number of diff layers to keep in pathdb (path state-scheme only) (default 128) */ + 'pathdb-max-diff-layers'?: number; /** amount of memory in megabytes to cache state snapshots with (default 400) */ 'snapshot-cache'?: number; /** maximum gas rolled back to recover snapshot (default 300000000000) */ @@ -120,11 +128,15 @@ export type NodeConfig = { 'trie-dirty-cache'?: number; /** maximum block processing time before trie is written to hard-disk (default 1h0m0s) */ 'trie-time-limit'?: string; + /** Execution will suggest that maintenance is run if the block processing time required to reach trie-time-limit is smaller or equal than trie-time-limit-before-flush-maintenance */ + 'trie-time-limit-before-flush-maintenance'?: string; /** if greater then 0, the block processing time period of each trie write to hard-disk is shortened by a random value from range [0, trie-time-limit-random-offset) */ 'trie-time-limit-random-offset'?: string; }; /** enable prefetching of blocks (default true) */ 'enable-prefetch-block'?: boolean; + /** experimental: expose multi-dimensional gas in transaction receipts */ + 'expose-multi-gas'?: boolean; 'forwarder'?: { /** total time to wait before cancelling connection (default 30s) */ 'connection-timeout'?: string; @@ -132,7 +144,7 @@ export type NodeConfig = { 'idle-connection-timeout'?: string; /** maximum number of idle connections to keep open (default 1) */ 'max-idle-connections'?: number; - /** the Redis URL to recomend target via */ + /** the Redis URL to recommend target via */ 'redis-url'?: string; /** minimal time between update retries (default 100ms) */ 'retry-interval'?: string; @@ -180,10 +192,8 @@ export type NodeConfig = { /** bounds the length of timeout queues arbdebug calls may return (default 512) */ 'timeout-queue-bound'?: number; }; - /** number of blocks a single bloom bit section vector holds (default 16384) */ - 'bloom-bits-blocks'?: number; - /** number of confirmation blocks before a bloom section is considered final (default 256) */ - 'bloom-confirms'?: number; + /** array of node configs to redirect block requests given as a json string. time duration should be supplied in number indicating nanoseconds (default "default") */ + 'block-redirects-list'?: string; /** url to redirect classic requests, use "error:[CODE:]MESSAGE" to return specified error instead of redirecting */ 'classic-redirect'?: string; /** timeout for forwarded classic requests, where 0 = no timeout */ @@ -198,6 +208,12 @@ export type NodeConfig = { 'filter-timeout'?: string; /** cap on computation gas that can be used in eth_call/estimateGas (0=infinite) (default 50000000) */ 'gas-cap'?: number; + /** export log index checkpoints to file */ + 'log-export-checkpoints'?: string; + /** maximum number of blocks from head where a log search index is maintained (default 9400000) */ + 'log-history'?: number; + /** no log search index is maintained */ + 'log-no-history'?: boolean; /** maximum 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) */ 'max-recreate-state-depth'?: number; /** allow transactions that aren't EIP-155 replay protected to be submitted over the RPC (default true) */ @@ -209,6 +225,8 @@ export type NodeConfig = { 'secondary-forwarding-target'?: string[]; 'sequencer'?: { 'dangerous'?: { + /** DANGEROUS! disables nitro checks on sequencer for blob base fee */ + 'disable-blob-base-fee-check'?: boolean; /** DANGEROUS! disables nitro checks on sequencer MaxTxDataSize against the sequencer inbox MaxDataSize */ 'disable-seq-inbox-max-data-size-check'?: boolean; }; @@ -216,6 +234,8 @@ export type NodeConfig = { 'enable'?: boolean; /** enable CPU profiling and tracing */ 'enable-profiling'?: boolean; + /** gas price setting to be used in calculating estimated surplus. Allowed values- CalldataPrice, BlobPrice and CalldataPrice7523 (default "BlobPrice") */ + 'expected-surplus-gas-price-mode'?: string; /** if expected surplus is lower than this value, new incoming transactions will be denied (default "default") */ 'expected-surplus-hard-threshold'?: string; /** if expected surplus is lower than this value, warnings are posted (default "default") */ @@ -227,7 +247,7 @@ export type NodeConfig = { 'idle-connection-timeout'?: string; /** maximum number of idle connections to keep open (default 100) */ 'max-idle-connections'?: number; - /** the Redis URL to recomend target via */ + /** the Redis URL to recommend target via */ 'redis-url'?: string; /** minimal time between update retries (default 100ms) */ 'retry-interval'?: string; @@ -252,6 +272,8 @@ export type NodeConfig = { 'queue-size'?: number; /** maximum amount of time transaction can wait in queue (default 12s) */ 'queue-timeout'?: string; + /** timeout for reading new messages (default 10ms) */ + 'read-from-tx-queue-timeout'?: string; /** comma separated whitelist of authorized senders (if empty, everyone is allowed) */ 'sender-whitelist'?: string[]; 'timeboost'?: { @@ -290,11 +312,21 @@ export type NodeConfig = { 'sync-monitor'?: { /** wait for block validator to complete before returning finalized block number */ 'finalized-block-wait-for-block-validator'?: boolean; + /** allowed message lag while still considered in sync (default 1s) */ + 'msg-lag'?: string; /** wait for block validator to complete before returning safe block number */ 'safe-block-wait-for-block-validator'?: boolean; }; - /** retain the ability to lookup transactions by hash for the past N blocks (0 = all blocks) (default 126230400) */ - 'tx-lookup-limit'?: number; + 'tx-indexer'?: { + /** enables transaction indexer (default true) */ + 'enable'?: boolean; + /** minimum delay between transaction indexing/unindexing batches; the bigger the delay, the more blocks can be included in each batch (default 1s) */ + 'min-batch-delay'?: string; + /** number of threads used to RLP decode blocks during indexing/unindexing of historical transactions (default 12) */ + 'threads'?: number; + /** retain the ability to lookup transactions by hash for the past N blocks (0 = all blocks) (default 126230400) */ + 'tx-lookup-limit'?: number; + }; 'tx-pre-checker'?: { /** how long ago should the storage conditions from eth_SendRawTransactionConditional be true, 0 = don't check old state (default 2) */ 'required-state-age'?: number; @@ -303,6 +335,12 @@ export type NodeConfig = { /** how 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 (default 20) */ 'strictness'?: number; }; + 'vmtrace'?: { + /** (experimental) Tracer configuration in JSON format (default "{}") */ + 'json-config'?: string; + /** (experimental) Name of tracer which should record internal VM operations (costly) */ + 'tracer-name'?: string; + }; }; 'file-logging'?: { /** size of intermediate log records buffer (default 512) */ @@ -365,7 +403,7 @@ export type NodeConfig = { 'dev-init-blocknum'?: number; /** Max code size for dev accounts */ 'dev-max-code-size'?: number; - /** path to save temp downloaded file (default "/tmp/") */ + /** path to save temp downloaded file */ 'download-path'?: string; /** how long to wait between polling attempts (default 1m0s) */ 'download-poll'?: string; @@ -389,7 +427,7 @@ export type NodeConfig = { 'prune-bloom-size'?: number; /** if true: use parallel pruning per account */ 'prune-parallel-storage-traversal'?: boolean; - /** the number of threads to use when pruning (default 16) */ + /** the number of threads to use when pruning (default 12) */ 'prune-threads'?: number; /** amount of memory in megabytes to cache unchanged state trie nodes with when traversing state database during pruning (default 600) */ 'prune-trie-clean-cache'?: number; @@ -409,6 +447,8 @@ export type NodeConfig = { 'url'?: string; /** if true: validate the checksum after downloading the snapshot (default true) */ 'validate-checksum'?: boolean; + /** tests genesis assertion posted on parent chain against the genesis block created on init (default true) */ + 'validate-genesis-assertion'?: boolean; }; 'ipc'?: { /** Requested location to place the IPC endpoint. An empty path disables IPC. */ @@ -495,8 +535,6 @@ export type NodeConfig = { 'min-tip-cap-gwei'?: number; /** the maximum probable reorg depth, used to determine when a transaction will no longer likely need replaced-by-fee (default 1) */ 'nonce-rbf-soft-confs'?: number; - /** if the parent chain supports 4844 blobs and they're well priced, post EIP-4844 blobs */ - 'post-4844-blobs'?: boolean; 'redis-signer'?: { 'dangerous'?: { /** disable message signature verification */ @@ -569,7 +607,7 @@ export type NodeConfig = { /** if the parent chain supports 4844 blobs and they're well priced, post EIP-4844 blobs */ 'post-4844-blobs'?: boolean; 'redis-lock'?: { - /** should node always try grabing lock in background */ + /** should node always try grabbing lock in background */ 'background-lock'?: boolean; /** if false, always treat this as locked and don't write the lock to redis (default true) */ 'enable'?: boolean; @@ -631,6 +669,14 @@ export type NodeConfig = { 'dangerous'?: { /** resets block-by-block validation, starting again at genesis */ 'reset-block-validation'?: boolean; + 'revalidation'?: { + /** end revalidation at this block */ + 'end-block'?: number; + /** exit node after revalidation is done */ + 'quit-after-revalidation'?: boolean; + /** start revalidation from this block */ + 'start-block'?: number; + }; }; /** enable block-by-block validation */ 'enable'?: boolean; @@ -642,7 +688,7 @@ export type NodeConfig = { 'memory-free-limit'?: string; /** pending upgrade wasm module root to additionally validate (hash, 'latest' or empty) (default "latest") */ 'pending-upgrade-module-root'?: string; - /** record that many blocks ahead of validation (larger footprint) (default 32) */ + /** record that many blocks ahead of validation (larger footprint) (default 24) */ 'prerecorded-blocks'?: number; /** limit on block recordings sent per iteration (default 20) */ 'recording-iter-limit'?: number; @@ -668,6 +714,8 @@ export type NodeConfig = { }; /** poll time to check validations (default 1s) */ 'validation-poll'?: string; + /** limit on block validations to keep in validation sent state (default 1024) */ + 'validation-sent-limit'?: number; /** array of execution rpc configs given as a json string. time duration should be supplied in number indicating nanoseconds (default "default") */ 'validation-server-configs-list'?: string; 'validation-server'?: { @@ -690,6 +738,8 @@ export type NodeConfig = { /** websocket message size limit used by the RPC client. 0 means no limit (default 268435456) */ 'websocket-message-size-limit'?: number; }; + /** number of attempts allowed when trying to spawn a validation before erroring out (default 1) */ + 'validation-spawning-allowed-attempts'?: number; }; 'bold'?: { /** enable api */ @@ -738,15 +788,55 @@ export type NodeConfig = { /** name identifier for cosmetic purposes (default "default-validator") */ 'validator-name'?: string; }; - /** define the bold validator staker strategy, either watchtower, defensive, stakeLatest, or makeNodes (default "Watchtower") */ - 'strategy'?: string; /** only track challenges/edges with these parent assertion hashes */ 'track-challenge-parent-assertion-hashes'?: string[]; }; 'consensus-execution-syncer'?: { - /** Interval in which finality data is pushed from consensus to execution (default 1s) */ + /** Interval in which finality and sync data is pushed from consensus to execution (default 300ms) */ 'sync-interval'?: string; }; + 'da-provider'?: { + 'data-stream'?: { + /** maximum HTTP body size for chunked store requests (default 5242880) */ + 'max-store-chunk-body-size'?: number; + 'rpc-methods'?: { + /** name of the RPC method to finalize a chunked data stream (default "daprovider_commitChunkedStore") */ + 'finalize-stream'?: string; + /** name of the RPC method to start a chunked data stream (default "daprovider_startChunkedStore") */ + 'start-stream'?: string; + /** name of the RPC method to send a chunk of data (default "daprovider_sendChunk") */ + 'stream-chunk'?: string; + }; + }; + /** enable daprovider client */ + 'enable'?: boolean; + 'rpc'?: { + /** limit size of arguments in log entries (default 2048) */ + 'arg-log-limit'?: number; + /** how long to wait for initial connection */ + 'connection-wait'?: string; + /** path to file with jwtsecret for validation - ignored if url is self or self-auth */ + 'jwtsecret'?: string; + /** number of retries in case of failure(0 mean one attempt) (default 3) */ + 'retries'?: number; + /** delay between retries */ + 'retry-delay'?: string; + /** Errors matching this regular expression are automatically retried (default "websocket: close.*|dial tcp .*|.*i/o timeout|.*connection reset by peer|.*connection refused") */ + 'retry-errors'?: string; + /** per-response timeout (0-disabled) */ + 'timeout'?: string; + /** url of server, use self for loopback websocket, self-auth for loopback with authentication */ + 'url'?: string; + /** websocket message size limit used by the RPC client. 0 means no limit (default 268435456) */ + 'websocket-message-size-limit'?: number; + }; + /** name of the store rpc method on the daprovider server (used when data streaming is disabled) (default "daprovider_store") */ + 'store-rpc-method'?: string; + /** use data streaming protocol for storing large payloads */ + 'use-data-streaming'?: boolean; + /** implies if the daprovider rpc server supports writer interface */ + 'with-writer'?: boolean; + }; 'dangerous'?: { /** DANGEROUS! disables the EIP-4844 blob reader, which is necessary to read batches */ 'disable-blob-reader'?: boolean; @@ -762,7 +852,7 @@ export type NodeConfig = { 'panic-on-error'?: boolean; /** parent 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) */ 'parent-chain-connection-attempts'?: number; - /** URL for parent chain node, only used in standalone daserver; when running as part of a node that node's L1 configuration is used */ + /** 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 */ 'parent-chain-node-url'?: string; /** Data Availability Service timeout duration for Store requests (default 5s) */ 'request-timeout'?: string; @@ -813,12 +903,26 @@ export type NodeConfig = { 'assumed-honest'?: number; /** JSON 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. (default null) */ 'backends'?: string; + 'das-rpc-client'?: { + 'data-stream'?: { + /** maximum HTTP body size for chunked store requests (default 5242880) */ + 'max-store-chunk-body-size'?: number; + 'rpc-methods'?: { + /** name of the RPC method to finalize a chunked data stream (default "das_commitChunkedStore") */ + 'finalize-stream'?: string; + /** name of the RPC method to start a chunked data stream (default "das_startChunkedStore") */ + 'start-stream'?: string; + /** name of the RPC method to send a chunk of data (default "das_sendChunk") */ + 'stream-chunk'?: string; + }; + }; + /** enable data to be sent to DAS in chunks instead of all at once (default true) */ + 'enable-chunked-store'?: boolean; + /** URL of DAS server to connect to */ + 'server-url'?: string; + }; /** 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 */ 'enable'?: boolean; - /** enable data to be sent to DAS in chunks instead of all at once (default true) */ - 'enable-chunked-store'?: boolean; - /** maximum HTTP POST body size to use for individual batch chunks, including JSON RPC overhead and an estimated overhead of 512B of headers (default 524288) */ - 'max-store-chunk-body-size'?: number; }; /** parent chain address of SequencerInbox contract */ 'sequencer-inbox-address'?: string; @@ -868,6 +972,8 @@ export type NodeConfig = { /** address to bind the relay feed output to */ 'addr'?: string; 'backlog'?: { + /** enable deep copying of L2 messages for memory profiling (debug only) */ + 'enable-backlog-deep-copy'?: boolean; /** the maximum number of messages each segment within the backlog can contain (default 240) */ 'segment-limit'?: number; }; @@ -887,8 +993,6 @@ export type NodeConfig = { /** time to wait after a relay client disconnects before the disconnect is registered with respect to the limit for this client */ 'reconnect-cooldown-period'?: string; }; - /** don't sign feed messages (default true) */ - 'disable-signing'?: boolean; /** enable broadcaster */ 'enable'?: boolean; /** enable per message deflate compression support */ @@ -942,8 +1046,12 @@ export type NodeConfig = { 'target-messages-read'?: number; }; 'maintenance'?: { + /** how often to check if maintenance should be run (default 1m0s) */ + 'check-interval'?: string; + /** enable maintenance runner */ + 'enable'?: boolean; 'lock'?: { - /** should node always try grabing lock in background */ + /** should node always try grabbing lock in background */ 'background-lock'?: boolean; /** if false, always treat this as locked and don't write the lock to redis (default true) */ 'enable'?: boolean; @@ -956,10 +1064,6 @@ export type NodeConfig = { /** how long between consecutive calls to redis (default 10s) */ 'refresh-duration'?: string; }; - /** UTC 24-hour time of day to run maintenance at (e.g. 15:00) */ - 'time-of-day'?: string; - /** maintenance is triggerable via rpc */ - 'triggerable'?: boolean; }; 'message-pruner'?: { /** enable message pruning (default true) */ @@ -991,8 +1095,12 @@ export type NodeConfig = { /** use l1 data about finalized/safe blocks (default true) */ 'use-finality-data'?: boolean; }; + 'resource-mgmt'?: { + /** Decline RPC calls if free memory excluding the page cache is below this amount */ + 'mem-free-limit'?: string; + }; 'seq-coordinator'?: { - /** (default 240h0m0s) */ + /** expiration duration for block metadata keys in Redis (default 240h0m0s) */ 'block-metadata-duration'?: string; /** if non-empty, launch an HTTP service binding to this address that returns status code 200 when chosen and 503 otherwise */ 'chosen-healthcheck-addr'?: string; @@ -1002,9 +1110,9 @@ export type NodeConfig = { 'enable'?: boolean; /** the 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) */ 'handoff-timeout'?: string; - /** (default 1m0s) */ + /** duration to hold the sequencer lockout after acquiring it (default 1m0s) */ 'lockout-duration'?: string; - /** (default 30s) */ + /** time to subtract from lockout duration to ensure timely renewal (default 30s) */ 'lockout-spare'?: string; /** will only be marked as wanting the lockout if not too far behind (default 2000) */ 'msg-per-poll'?: number; @@ -1012,15 +1120,17 @@ export type NodeConfig = { 'my-url'?: string; /** switch to the new Redis URL to coordinate via */ 'new-redis-url'?: string; + /** the quorum size needed to qualify a redis GET as valid (default 1) */ + 'redis-quorum-size'?: number; /** the Redis URL to coordinate via */ 'redis-url'?: string; /** the number of times to retry releasing the wants lockout and chosen one status on shutdown (default 4) */ 'release-retries'?: number; - /** (default 50ms) */ + /** interval to wait before retrying after an error (default 50ms) */ 'retry-interval'?: string; /** if non-zero will add delay after transferring control (default 5s) */ 'safe-shutdown-delay'?: string; - /** (default 240h0m0s) */ + /** expiration duration for message count keys in Redis (default 240h0m0s) */ 'seq-num-duration'?: string; 'signer'?: { 'ecdsa'?: { @@ -1048,7 +1158,7 @@ export type NodeConfig = { 'signing-key'?: string; }; }; - /** (default 250ms) */ + /** interval between sequencer coordinator update attempts (default 250ms) */ 'update-interval'?: string; }; /** enable sequencer */ @@ -1067,8 +1177,6 @@ export type NodeConfig = { 'data-poster'?: { /** if true, don't put transactions in the mempool that spend a total greater than the batch poster's balance (default true) */ 'allocate-mempool-balance'?: boolean; - /** comma-separated list of durations since first posting a blob transaction to attempt a replace-by-fee (default [5m0s,10m0s,30m0s,1h0m0s,4h0m0s,8h0m0s,16h0m0s,22h0m0s]) */ - 'blob-tx-replacement-times'?: string[]; 'dangerous'?: { /** clear database storage */ 'clear-dbstorage'?: boolean; @@ -1097,8 +1205,6 @@ export type NodeConfig = { }; /** encodes items in a legacy way (as it was before dropping generics) */ 'legacy-storage-encoding'?: boolean; - /** the maximum tip cap to post EIP-4844 blob carrying transactions at (default 1) */ - 'max-blob-tx-tip-cap-gwei'?: number; /** the 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) */ 'max-fee-bid-multiple-bips'?: number; /** 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") */ @@ -1111,14 +1217,10 @@ export type NodeConfig = { 'max-queued-transactions'?: number; /** the maximum tip cap to post transactions at (default 1.2) */ 'max-tip-cap-gwei'?: number; - /** the minimum tip cap to post EIP-4844 blob carrying transactions at (default 1) */ - 'min-blob-tx-tip-cap-gwei'?: number; /** the minimum tip cap to post transactions at (default 0.05) */ 'min-tip-cap-gwei'?: number; /** the maximum probable reorg depth, used to determine when a transaction will no longer likely need replaced-by-fee (default 1) */ 'nonce-rbf-soft-confs'?: number; - /** if the parent chain supports 4844 blobs and they're well priced, post EIP-4844 blobs */ - 'post-4844-blobs'?: boolean; 'redis-signer'?: { 'dangerous'?: { /** disable message signature verification */ @@ -1126,7 +1228,7 @@ export type NodeConfig = { }; /** a fallback key used for message verification */ 'fallback-verification-key'?: string; - /** a 32-byte (64-character) hex string used to sign messages, or a path to a file containing it */ + /** Version: v3.9.5-66e42c4, time: 2026-01-07T13:35:17-07:00 */ 'signing-key'?: string; }; /** comma-separated list of durations since first posting to attempt a replace-by-fee (default [5m0s,10m0s,20m0s,30m0s,1h0m0s,2h0m0s,4h0m0s,6h0m0s,8h0m0s,12h0m0s,16h0m0s,18h0m0s,20h0m0s,22h0m0s]) */ @@ -1198,6 +1300,8 @@ export type NodeConfig = { 'max-broadcaster-queue-size'?: number; /** maximum number of messages to attempt to resequence on reorg (0 = never resequence, -1 = always resequence) (default 1024) */ 'max-reorg-resequence-depth'?: number; + /** if set the node gracefully shuts down upon detecting mismatch in feed and locally computed blockhash. This is turned off by default */ + 'shutdown-on-blockhash-mismatch'?: boolean; /** node will not sync past this block */ 'sync-till-block'?: number; /** block number to start saving blockmetadata, 0 to disable */ @@ -1212,6 +1316,10 @@ export type NodeConfig = { 'beacon-url'?: string; /** Full path of the directory to save fetched blobs */ 'blob-directory'?: string; + 'dangerous'?: { + /** DANGEROUS! Skips verification of KZG proofs for blobs fetched from the beacon node. */ + 'skip-blob-proof-verification'?: boolean; + }; /** Backup beacon Chain RPC URL to use for fetching blobs (normally on port 3500) when unable to fetch from primary */ 'secondary-beacon-url'?: string; }; @@ -1271,13 +1379,13 @@ export type NodeConfig = { 'l0-compaction-concurrency'?: number; /** count of L0 files necessary to trigger an L0 compaction (default 500) */ 'l0-compaction-file-threshold'?: number; - /** amount of L0 read-amplification necessary to trigger an L0 compaction (default 4) */ + /** amount of L0 read-amplification necessary to trigger an L0 compaction (default 2) */ 'l0-compaction-threshold'?: number; /** hard limit on L0 read-amplification, computed as the number of L0 sublevels. Writes are stopped when this threshold is reached (default 12) */ 'l0-stop-writes-threshold'?: number; /** 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. */ 'max-writer-concurrency'?: number; - /** hard limit on the number of queued of MemTables (default 2) */ + /** hard limit on the number of queued of MemTables (default 4) */ 'mem-table-stop-writes-threshold'?: number; /** controls the frequency of read triggered compactions by adjusting AllowedSeeks in manifest.FileMetadata: AllowedSeeks = FileSize / ReadCompactionRate (default 16000) */ 'read-compaction-rate'?: number; @@ -1289,14 +1397,14 @@ export type NodeConfig = { 'target-file-size'?: number; /** 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 */ 'target-file-size-equal-levels'?: boolean; - /** number of bytes to write to a write-ahead log (WAL) before calling Sync on it in the background */ + /** number of bytes to write to a write-ahead log (WAL) before calling Sync on it in the background (default 512000) */ 'wal-bytes-per-sync'?: number; /** absolute path of directory to store write-ahead logs (WALs) in. If empty, WALs will be stored in the same directory as sstables */ 'wal-dir'?: string; /** minimum duration in microseconds between syncs of the WAL. If WAL syncs are requested faster than this interval, they will be artificially delayed. */ 'wal-min-sync-interval'?: number; }; - /** maximum number of concurrent compactions (default 16) */ + /** maximum number of concurrent compactions (default 12) */ 'max-concurrent-compactions'?: number; /** if true sync mode is used (data needs to be written to WAL before the write is marked as completed) */ 'sync-mode'?: boolean; @@ -1358,6 +1466,8 @@ export type NodeConfig = { 'jit'?: { /** use Cranelift instead of LLVM when validating blocks using the jit-accelerated block validator (default true) */ 'cranelift'?: boolean; + /** path to jit executable, if empty, attempts to find jit executable relative to nitro binary or in PATH */ + 'jit-path'?: string; /** if execution time used by a jit wasm exceeds this limit, a rpc error is returned (default 10m0s) */ 'max-execution-time'?: string; /** if memory used by a jit wasm exceeds this limit, a warning is logged (default 4294967296) */ @@ -1368,7 +1478,7 @@ export type NodeConfig = { /** use jit for validation (default true) */ 'use-jit'?: boolean; 'wasm'?: { - /** list of WASM module roots or mahcine base paths to match against on-chain WasmModuleRoot */ + /** list of WASM module roots or machine base paths to match against on-chain WasmModuleRoot */ 'allowed-wasm-module-roots'?: string[]; /** enable check for compatibility of on-chain WASM module root with node (default true) */ 'enable-wasmroots-check'?: boolean;