diff --git a/src/prepareNodeConfig.ts b/src/prepareNodeConfig.ts index a2d98601..caff2ae2 100644 --- a/src/prepareNodeConfig.ts +++ b/src/prepareNodeConfig.ts @@ -136,7 +136,6 @@ export function prepareNodeConfig({ 'disable-blob-reader': getDisableBlobReader(parentChainId), }, 'bold': { - enable: true, strategy: 'MakeNodes', }, }, diff --git a/src/scripts/generateNodeConfigType.ts b/src/scripts/generateNodeConfigType.ts index d93c5120..f881c2e4 100644 --- a/src/scripts/generateNodeConfigType.ts +++ b/src/scripts/generateNodeConfigType.ts @@ -5,7 +5,7 @@ import { Project, WriterFunction, Writers } from 'ts-morph'; const { objectType } = Writers; function getNitroNodeImageTag(): string { - const defaultNitroNodeTag = 'v3.5.6-9a29a1e'; + const defaultNitroNodeTag = 'v3.6.0-fc07dd2'; const argv = process.argv.slice(2); if (argv.length < 2 || argv[0] !== '--nitro-node-tag') { diff --git a/src/types/NodeConfig.generated.ts b/src/types/NodeConfig.generated.ts index 84a510f0..4e0d4c5e 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.5.6-9a29a1e -// TIMESTAMP: 2025-04-24T07:55:35.504Z +// IMAGE: offchainlabs/nitro-node:v3.6.0-fc07dd2 +// TIMESTAMP: 2025-04-30T12:27:36.604Z // // --- /** Nitro node configuration options */ @@ -21,18 +21,16 @@ export type NodeConfig = { port?: number; }; 'blocks-reexecutor'?: { + /** json encoded list of block ranges in the form of start and end block numbers in a list of size 2 (default "[[0,0]]") */ + 'blocks'?: string; /** enables re-execution of a range of blocks against historic state */ 'enable'?: boolean; - /** last block number of the block range for re-execution */ - 'end-block'?: number; /** minimum number of blocks to execute per thread. When mode is random this acts as the size of random block range sample */ '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 20) */ + /** number of threads to parallelize blocks re-execution (default 16) */ 'room'?: number; - /** first block number of the block range for re-execution */ - 'start-block'?: number; /** memory allowance (MB) to use for caching trie nodes in memory */ 'trie-clean-limit'?: number; }; @@ -122,6 +120,8 @@ export type NodeConfig = { 'trie-dirty-cache'?: number; /** maximum block processing time before trie is written to hard-disk (default 1h0m0s) */ 'trie-time-limit'?: 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; @@ -208,6 +208,10 @@ export type NodeConfig = { /** secondary transaction forwarding target URL */ 'secondary-forwarding-target'?: string[]; 'sequencer'?: { + 'dangerous'?: { + /** DANGEROUS! disables nitro checks on sequencer MaxTxDataSize against the sequencer inbox MaxDataSize */ + 'disable-seq-inbox-max-data-size-check'?: boolean; + }; /** act and post to l1 as sequencer */ 'enable'?: boolean; /** enable CPU profiling and tracing */ @@ -383,7 +387,9 @@ export type NodeConfig = { 'prune'?: string; /** the amount of memory in megabytes to use for the pruning bloom filter (higher values prune better) (default 2048) */ 'prune-bloom-size'?: number; - /** the number of threads to use when pruning (default 20) */ + /** if true: use parallel pruning per account */ + 'prune-parallel-storage-traversal'?: boolean; + /** the number of threads to use when pruning (default 16) */ '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; @@ -489,6 +495,8 @@ 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 */ @@ -512,6 +520,8 @@ export type NodeConfig = { /** only treat a transaction as confirmed after L1 finality has been achieved (recommended) (default true) */ 'wait-for-l1-finality'?: boolean; }; + /** always treat delay buffer as updatable (default true) */ + 'delay-buffer-always-updatable'?: boolean; /** the number of blocks to post the batch before reaching the delay buffer threshold (default 25) */ 'delay-buffer-threshold-margin'?: number; /** If unable to batch to DA provider, disable fallback storing data on chain */ @@ -532,7 +542,7 @@ export type NodeConfig = { 'l1-block-bound'?: string; /** post batches even if not within the layer 1 future bounds if we're within this margin of the max delay (default 1h0m0s) */ 'l1-block-bound-bypass'?: string; - /** maximum estimated compressed 4844 blob enabled batch size (default 388144) */ + /** maximum estimated compressed 4844 blob enabled batch size */ 'max-4844-batch-size'?: number; /** maximum batch posting delay (default 1h0m0s) */ 'max-delay'?: string; @@ -540,6 +550,8 @@ export type NodeConfig = { 'max-empty-batch-delay'?: string; /** maximum estimated compressed batch size (default 100000) */ 'max-size'?: number; + /** if parent chain uses EIP7623 ("yes", "no", "auto") (default "auto") */ + 'parent-chain-eip7623'?: string; 'parent-chain-wallet'?: { /** account to use (default is first account in keystore) */ 'account'?: string; @@ -580,10 +592,12 @@ export type NodeConfig = { 'wait-for-max-delay'?: boolean; }; 'block-metadata-fetcher'?: { - /** maximum number of blocks allowed to be queried for blockMetadata per arb_getRawBlockMetadata query. */ + /** maximum number of blocks per arb_getRawBlockMetadata query (default 100) */ 'api-blocks-limit'?: number; - /** enable syncing blockMetadata using a bulk blockMetadata api. If the source doesn't have the missing blockMetadata, we keep retyring in every sync-interval (default=5mins) duration */ + /** enable syncing blockMetadata using a bulk blockMetadata api */ 'enable'?: boolean; + /** maximum time between blockMetadata requests (default 32m0s) */ + 'max-sync-interval'?: string; 'source'?: { /** limit size of arguments in log entries (default 2048) */ 'arg-log-limit'?: number; @@ -604,7 +618,7 @@ export type NodeConfig = { /** websocket message size limit used by the RPC client. 0 means no limit (default 268435456) */ 'websocket-message-size-limit'?: number; }; - /** interval at which blockMetadata are synced regularly (default 5m0s) */ + /** minimum time between blockMetadata requests (default 1m0s) */ 'sync-interval'?: string; }; 'block-validator'?: { @@ -628,7 +642,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 40) */ + /** record that many blocks ahead of validation (larger footprint) (default 32) */ 'prerecorded-blocks'?: number; /** limit on block recordings sent per iteration (default 20) */ 'recording-iter-limit'?: number; @@ -704,14 +718,14 @@ export type NodeConfig = { /** enable delegated staking by having the validator call newStake on startup */ 'enable'?: boolean; }; - /** enable bold challenge protocol */ - 'enable'?: boolean; /** enable fast confirmation */ 'enable-fast-confirmation'?: boolean; /** maximum size for chunk of blocks when using get logs rpc (default 5000) */ 'max-get-log-blocks'?: number; /** minimum duration to wait since the parent assertion was created to post a new assertion (default 1m0s) */ 'minimum-gap-to-parent-assertion'?: string; + /** the average block time of the parent chain where assertions are posted (default 12s) */ + 'parent-chain-block-time'?: string; /** define the block number to use for reading data onchain, either latest, safe, or finalized (default "finalized") */ 'rpc-block-number'?: string; /** assume staked nodes are valid (default true) */ @@ -729,6 +743,10 @@ export type NodeConfig = { /** 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) */ + 'sync-interval'?: string; + }; 'dangerous'?: { /** DANGEROUS! disables the EIP-4844 blob reader, which is necessary to read batches */ 'disable-blob-reader'?: boolean; @@ -1099,6 +1117,8 @@ 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 */ @@ -1178,7 +1198,9 @@ 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; - /** this is the block number starting from which blockmetadata is being tracked in the local disk and is being published to the feed. This is also the starting position for bulk syncing of missing blockmetadata. Setting to zero (default value) disables this */ + /** node will not sync past this block */ + 'sync-till-block'?: number; + /** block number to start saving blockmetadata, 0 to disable */ 'track-block-metadata-from'?: number; }; }; @@ -1274,7 +1296,7 @@ export type NodeConfig = { /** 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 20) */ + /** maximum number of concurrent compactions (default 16) */ '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;