Skip to content

Releases: OffchainLabs/nitro

Arbitrum Nitro v3.11.1

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 29 Jun 17:45
8512b8c

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.11.1-8512b8c
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

If you're running a validator without a split validation server (this will be true of most validators), you should instead use the image offchainlabs/nitro-node:v3.11.1-8512b8c-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

v3.11.1 - 2026-06-29

Fixed

  • The Stylus warm-start cache is now rolled back when a transaction is dropped after executing. [commit]
  • Use mutex for history reads [commit]

Arbitrum Nitro v3.11.0

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 22 Jun 18:05
a618155

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.11.0-a618155
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

If you're running a validator without a split validation server (this will be true of most validators), you should instead use the image offchainlabs/nitro-node:v3.11.0-a618155-validator which has the extra script /usr/local/bin/split-val-entry.sh as the entrypoint.

v3.11.0 - 2026-06-22

Added

  • ArbOS60 supported.
  • Add --execution.legacy-zero-base-fee-until restores the pre-v3.7 behavior of treating headers with ArbOSFormatVersion <= 40 and BaseFee == 0 for affected chains.
  • Add --execution.transaction-filtering.enable replaces --execution.address-filter.enable.
  • Sequencer reports filtered regular transactions to the filtering-report service via FilteringReportRPCClient.
  • Unified replay binary (cmd/unified-replay/) combining MEL message extraction and block production into a single WASM-compilable program.
  • GetEndParentChainBlockHash host I/O opcode for MEL proving.
  • melwavmio package providing WASM imports and native stubs for MEL.
  • Extended GlobalState to 4 bytes32 slots with backward-compatible hashing.
  • Makefile targets build-unified-replay-env and build-unified-wasm-bin.
  • Sign outbound webhook payloads from cmd/filtering-report with an Ed25519 leaf certificate issued by an internal CA, so receivers verify the signature against the CA root and rotate keys transparently.
  • Add scripts/rust-val-entry.sh Docker entrypoint script that launches a single Rust validation server alongside the nitro node.
  • Add nitro-node-rust-validator Docker target.
  • Support for ArbOS 61.
  • Add per-worker slowdown on consecutive retryable HTTP errors from the external endpoint to avoid hammering a degraded service and consuming max receive count quota unnecessarily.
  • Download the consensus-v61-rc.1 replay machine in the Docker build.

Changed

  • S3SyncManager now includes filterSetID in the successful hash-list load log line so operators can correlate it with the FilterSetID reported on filtered tx reports.
  • Replace sha3/digest keccak with tiny-keccak across prover and caller-env.
  • --node.transaction-streamer.shutdown-on-blockhash-mismatch now defaults to true: on a feed-vs-local block hash mismatch the node refuses to persist or rebroadcast the result and shuts down gracefully.
  • Update README.md with support policy.
  • Update CONTRIBUTING.md with the new development process.
  • Reduced GC frequency for in replay binary (for wasm targets).
  • Use Option for interface vars that can be empty.

Fixed

  • Skip extra header columns in iostat parsing.
  • Improve locking mechanism in backlogSizeInBytes().
  • Reduce log spam during node sync. ExecuteNextMsg now throttles accumulator not found errors via an ephemeral error handler.
  • Iterator leak in deleteWasmEntries: defer is now late-bound so the post-flush iterator is released.
  • Allow retrying --init.url after a prior init created the wasm/ subdirectory but did not complete chain initialization.
  • Fixed initialization of redis-validator.
  • Re-run genesis assertion validation on startup while the chain head is still at genesis, so a previously failed validation is not silently skipped on subsequent restarts.
  • Canonicalize NaN values returned by soft-float library functions so WAVM and JIT produce identical results when floating-point operations yield NaN.
  • Fixed honest-validator self-challenge bug in BoLD where a slow catchup goroutine could downgrade latestAgreedAssertion
  • ArbOS 61: skip multi-gas refund when no constraints are configured.
  • ArbOS 61: use block basefee for the SingleDim refund override.
  • ArbOS 61: account for EVM SSTORE refunds in the multi-gas refund.
  • Stylus pre-VM OOG: when contract.BurnGas(callCost) drains the call frame before WASM runs, attribute the residual to WasmComputation so receipt.MultiGasUsed.SingleGas() matches receipt.GasUsed.
  • Updated log.* calls to use slog key/value pairs.
  • Address filter now records the L1 destination of ArbSys.withdrawEth / ArbSys.sendTxToL1 via a new ReasonToL1, closing a gap where L2→L1 withdrawals to a filtered address were not caught.
  • Fix invalid Prometheus metric names in filtering-report and transaction-filterer components; hyphens in geth metric paths survive the /_ translation and produce names that violate the Prometheus spec.
  • Removed legacy validator (was included but not working since wasmer upgrade).
  • Removed unnecessary tokens from consensus machine downloads in Dockerfile.
  • pin nitro-testnode master branch.
  • Sequencer no longer rejects clean transactions following a filtered one in the same block. PreTxFilter now operates on a fresh per-tx addressCheckerState instead of inheriting the previous tx's filter state.
  • Do not combine multi-gas refunds with EVM refunds.

Internal

  • stylus-raw-deploycode - a small utility that helps deploy stylus contracts for testing.
  • Make validation crate no-std friendly.
  • Remove JIT wrappers for wasi and wavmio.
  • Fix inner call and pushcontract address filter recording
  • cmd/filtering-report forwarder now emits an info log on successful report forwarding and includes the SQS message body in the existing forward-failure error log.
  • NIT-5012: fail fast when delayed-sequencing filtering is active but transaction-filterer-rpc-client.url is unset, and pin the transaction-filterer binary to serve only the transactionfilterer RPC namespace.
  • Make GuestPtr field private with checked addition (panics on overflow instead of silent wraparound).
  • Remove JIT wrappers for arbcrypto and arbcompress.
  • Address-filter S3 hash list now expects the upstream latest.json schema
  • Address-filter HashStore now supports hashing_scheme: "sha256-rawbytesinput"
  • Optional --execution.transaction-filtering.address-filter.s3.max-file-size-mb flag
  • The transaction prechecker now reports address-filtered transactions to the filtering-report service.
  • Send non-retryable HTTP errors to an optional poison queue for manual inspection or reprocessing.
  • Include transaction-filterer binary in nitro-node and nitro-node-stripped Docker images.
  • Report filtered delayed transactions to filtering-report service with structured FilteredTxReport.
  • Add script to generate large filtered-addresses-hashed-list.json test fixtures.
  • Refactor filtering report test infrastructure: rename CheckReportBlockNumberAndParentBlockHash to CheckCommonReportFields with additional common assertions and update SetupFilteringReport to return the RPC stack.
  • Remove -A static_mut_refs from clippy invocation in CI (we do not use mutable statics anymore).
  • Add forge version validation to scripts/check-build.sh.
  • Cache hash keys for MultiGasFees substorage.
  • Add FilterSetID field to FilteredAddressRecord and expose it through the AddressChecker and StateDB interfaces so callers can stamp each record with the active filter set id.
  • EnableETHCallFilter now scopes to eth_estimateGas only; no longer gates prechecker filtering.
  • Set default EnableETHCallFilter to false.
  • Skip prechecker transaction-filter dry-run on sequencer nodes.

Arbitrum Nitro v3.11.0-rc.3

Pre-release

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 10 Jun 19:22
7b9e49b

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.11.0-rc.3-7b9e49b
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

v3.11.0-rc.3 - 2026-06-08

Changed

  • Replace sha3/digest keccak with tiny-keccak across prover and caller-env.

Fixed

  • Fix invalid Prometheus metric names in filtering-report and transaction-filterer components; hyphens in geth metric paths survive the /_ translation and produce names that violate the Prometheus spec.
  • Removed legacy validator (was included but not working since wasmer upgrade).
  • Removed unnecessary tokens from consensus machine downloads in Dockerfile.

Internal

  • NIT-5012: fail fast when delayed-sequencing filtering is active but transaction-filterer-rpc-client.url is unset, and pin the transaction-filterer binary to serve only the transactionfilterer RPC namespace.
  • Make GuestPtr field private with checked addition (panics on overflow instead of silent wraparound).
  • Remove JIT wrappers for arbcrypto and arbcompress.

Arbitrum Nitro v3.11.0-rc.2

Pre-release

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 08 Jun 19:37
b4e3c3e

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.11.0-rc.2-b4e3c3e
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

Important for any chains that previously upgraded to ArbOS51 with consensus_v51:

  • Validator should use configuration option --node.block-validator.pending-upgrade-module-root="" to avoid performing unnecessary work trying to validate consensus_v51.1.

v3.11.0-rc.2 - 2026-06-05

Configuration

  • Add --execution.legacy-zero-base-fee-until restores the pre-v3.7 behavior of treating headers with ArbOSFormatVersion <= 40 and BaseFee == 0 for affected chains.
  • Add --execution.transaction-filtering.enable replaces --execution.address-filter.enable.
  • --node.transaction-streamer.shutdown-on-blockhash-mismatch now defaults to true: on a feed-vs-local block hash mismatch the node refuses to persist or rebroadcast the result and shuts down gracefully.

Added

  • ArbOS60 supported.
  • Unified replay binary (cmd/unified-replay/) combining MEL message extraction and block production into a single WASM-compilable program.
  • Extended GlobalState to 4 bytes32 slots with backward-compatible hashing.
  • Makefile targets build-unified-replay-env and build-unified-wasm-bin.
  • Add scripts/rust-val-entry.sh Docker entrypoint script that launches a single Rust validation server alongside the nitro node.
  • Add nitro-node-rust-validator Docker target.
  • Support for ArbOS 61.
  • Add per-worker slowdown on consecutive retryable HTTP errors from the external endpoint to avoid hammering a degraded service and consuming max receive count quota unnecessarily.
  • Download the consensus-v61-rc.1 replay machine in the Docker build.

Changed

  • Update CONTRIBUTING.md with the new development process.
  • Reduced GC frequency for in replay binary (for wasm targets).
  • Use Option for interface vars that can be empty.
  • Update README.md with support policy.

Fixed

  • Skip extra header columns in iostat parsing.
  • Improve locking mechanism in backlogSizeInBytes().
  • Reduce log spam during node sync. ExecuteNextMsg now throttles accumulator not found errors via an ephemeral error handler.
  • Iterator leak in deleteWasmEntries: defer is now late-bound so the post-flush iterator is released.
  • Allow retrying --init.url after a prior init created the wasm/ subdirectory but did not complete chain initialization.
  • Fixed initialization of redis-validator.
  • Re-run genesis assertion validation on startup while the chain head is still at genesis, so a previously failed validation is not silently skipped on subsequent restarts.
  • Canonicalize NaN values returned by soft-float library functions so WAVM and JIT produce identical results when floating-point operations yield NaN.
  • fix docker build to work in both nitro-private and public nitro.
  • Fixed honest-validator self-challenge bug in BoLD where a slow catchup goroutine could downgrade latestAgreedAssertion
  • ArbOS 61: skip multi-gas refund when no constraints are configured.
  • ArbOS 61: use block basefee for the SingleDim refund override.
  • ArbOS 61: account for EVM SSTORE refunds in the multi-gas refund.
  • Stylus pre-VM OOG: when contract.BurnGas(callCost) drains the call frame before WASM runs, attribute the residual to WasmComputation so receipt.MultiGasUsed.SingleGas() matches receipt.GasUsed.
  • pin nitro-testnode master branch.
  • Do not combine multi-gas refunds with EVM refunds.

Internal

  • Address-filter S3 hash list now expects the upstream latest.json schema
  • Sequencer reports filtered regular transactions to the filtering-report service via FilteringReportRPCClient.
  • Address-filter HashStore now supports hashing_scheme: "sha256-rawbytesinput"
  • Optional --execution.transaction-filtering.address-filter.s3.max-file-size-mb flag
  • The transaction prechecker now reports address-filtered transactions to the filtering-report service.
  • Send non-retryable HTTP errors to an optional poison queue for manual inspection or reprocessing.
  • Include transaction-filterer binary in nitro-node and nitro-node-stripped Docker images.
  • Report filtered delayed transactions to filtering-report service with structured FilteredTxReport.
  • Add script to generate large filtered-addresses-hashed-list.json test fixtures.
  • Refactor filtering report test infrastructure: rename CheckReportBlockNumberAndParentBlockHash to CheckCommonReportFields with additional common assertions and update SetupFilteringReport to return the RPC stack.
  • Remove -A static_mut_refs from clippy invocation in CI (we do not use mutable statics anymore).
  • Add forge version validation to scripts/check-build.sh.
  • Cache hash keys for MultiGasFees substorage.
  • Add FilterSetID field to FilteredAddressRecord and expose it through the AddressChecker and StateDB interfaces so callers can stamp each record with the active filter set id.
  • EnableETHCallFilter now scopes to eth_estimateGas only; no longer gates prechecker filtering.
  • Set default EnableETHCallFilter to false.
  • Skip prechecker transaction-filter dry-run on sequencer nodes.
  • Sign outbound webhook payloads from cmd/filtering-report with an Ed25519 leaf certificate issued by an internal CA, so receivers verify the signature against the CA root and rotate keys transparently.
  • GetEndParentChainBlockHash host I/O opcode for MEL proving.
  • melwavmio package providing WASM imports and native stubs for MEL.
  • Sequencer no longer rejects clean transactions following a filtered one in the same block. PreTxFilter now operates on a fresh per-tx addressCheckerState instead of inheriting the previous tx's filter state.

Arbitrum Nitro Consensus v61

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 30 Jun 21:10
dfab1de

This release signifies a WASM fraud proof consensus version, and is not a good version to run a node on

WAVM Module Root: 0xc10cd7ec6acaf1c441a3f6bd0900ad20f15855ba775a96f1939118cbc629dc97

This is a consensus release for ArbOS v61

Full Changelog: consensus-v60-rc.5...consensus-v61

Arbitrum Nitro Consensus v61-rc.2

Pre-release

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 09 Jun 00:56
dfab1de

This release signifies a WASM fraud proof consensus version, and is not a good version to run a node on

WAVM Module Root: 0xc10cd7ec6acaf1c441a3f6bd0900ad20f15855ba775a96f1939118cbc629dc97

This is a consensus release for ArbOS v61 RC 2

Full Changelog: OffchainLabs/nitro-private@consensus-v60-rc.5...consensus-v61-rc.2

Arbitrum Nitro v3.10.2

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 02 Jun 23:31
db30ef0

Important Note: Once a database is run with v3.10.x, the database cannot be used with v3.9.9.

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.2-db30ef0
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

Special note: On Monday, May 18, 2026 at 17:00 UTC, ArbOS 60 will activate on the Arbitrum Sepolia chain. Arbitrum Sepolia node operators must upgrade to Nitro v3.10 ahead of this activation to continue syncing the chain. This is not a required upgrade for Arbitrum One at this time, the date for Arbitrum One ArboOS upgrade has not been set yet.

Sepolia validators can use block-validator.pending-upgrade-module root="0x7a9e6a77354888257a9989ce0b6bb39df5fedf222d453932933fdf7a489cbb57" to validate against the planned arbos-60 upgrade

Important for any chains still on ArbOS40:

  • Any chain running ArbOS40 can upgrade non-validator nodes to latest version.
  • Any chain running ArbOS40, upgrading validators to Nitro v3.10.x needs to update module root to Consensus v60-rc.4 at the same time.  Do NOT perform ArbOS upgrade to ArbOS60, only ArbOS5x.
  • If a chain is on ArbOS40 and has already upgraded validators to v3.10.x, the module root should be updated to Consensus v60-rc.4 as soon as possible. Do NOT perform ArbOS upgrade to ArbOS60, only ArbOS5x.

v3.10.2 - 2026-06-02

Configuration

  • Add --execution.transaction-filtering.enable master switch (default false), replaces --execution.address-filter.enable.

Fixed

  • Improve BoLD assertion poster logs.
  • Fixed initialization of redis-validator.

Added

  • NIT-4804: address-filter now supports hashing_scheme: "sha256-rawbytesinput"

Changed

  • EnableETHCallFilter now scopes to eth_estimateGas only; no longer gates prechecker filtering.
  • Skip prechecker transaction-filter dry-run on sequencer nodes.

Internal

  • Cache hash keys for MultiGasFees substorage.

Arbitrum Nitro v3.10.1

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 19 May 03:15
d7f07be

Important Note: Once a database is run with v3.10.x, the database cannot be used with v3.9.9.

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.1-d7f07be
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

Special note: On Monday, May 18, 2026 at 17:00 UTC, ArbOS 60 will activate on the Arbitrum Sepolia chain. Arbitrum Sepolia node operators must upgrade to Nitro v3.10 ahead of this activation to continue syncing the chain. This is not a required upgrade for Arbitrum One at this time, the date for Arbitrum One ArboOS upgrade has not been set yet.

Sepolia validators can use block-validator.pending-upgrade-module root="0x7a9e6a77354888257a9989ce0b6bb39df5fedf222d453932933fdf7a489cbb57" to validate against the planned arbos-60 upgrade

Important for any chains still on ArbOS40:

  • Any chain running ArbOS40 can upgrade non-validator nodes to latest version.
  • Any chain running ArbOS40, upgrading validators to Nitro v3.10.x needs to update module root to Consensus v60-rc.4 at the same time.  Do NOT perform ArbOS upgrade
  • If a chain is on ArbOS40 and has already upgraded validators to v3.10.x, the module root should be updated to Consensus v60-rc.4 as soon as possible. Do NOT perform ArbOS upgrade

Important for any chains that previously upgraded to ArbOS51 with consensus_v51:

  • Validator should use configuration option --node.block-validator.pending-upgrade-module-root="" to avoid performing unnecessary work trying to validate consensus_v51.1.

v3.10.1 - 2026-05-12

Configuration

  • Add --execution.legacy-zero-base-fee-until <unix-ts> opt-in compatibility flag (default 0 = disabled). When set, restores the pre-v3.7 behavior of treating headers with ArbOSFormatVersion <= 40 and BaseFee == 0 as non-arbitrum, for blocks with timestamp strictly less than the given value.

Added

  • Include transaction-filterer binary in nitro-node and nitro-node-stripped Docker images.

Changed

  • Set default EnableETHCallFilter to false.
  • Update address-filter S3 hash list format
  • Ensure genesis block is appropriately validated

Fixed

  • Resolve BoLD Staking Bug That Attempts Self-Challenge

Arbitrum Nitro v3.10.0

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 11 May 19:04
b1cf6db

Important Note: v3.10.0 should not be used to run staking validator

Important Note: Once a database is run with v3.10.0, the database cannot be used with v3.9.9.

Important Note: Please add this option to nodes running v3.10:
execution.transaction-filtering.enable-ethcall-filter=false
The default doesn't make anything behave incorrectly, but it does a lot of unnecessary work for the sequencer and for precheckers/forwarders.
We will fix the default on future versions.

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.0-b1cf6db
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines\

Special note: On Monday, May 18, 2026 at 17:00 UTC, ArbOS 60-rc.5 will activate on the Arbitrum Sepolia chain. Arbitrum Sepolia node operators must upgrade to Nitro v3.10 ahead of this activation to continue syncing the chain. This is not a required upgrade for Arbitrum One at this time, the date for Arbitrum One ArboOS upgrade has not been set yet.

Sepolia validators can use block-validator.pending-upgrade-module root="0x7a9e6a77354888257a9989ce0b6bb39df5fedf222d453932933fdf7a489cbb57" to validate against the planned arbos-60 upgrade

Special note 2: Nitro 3.10.0 is an important release containing stability improvements and security fixes, and we recommend teams adopt it as soon as possible.

Important for any chains still on ArbOS40:

  • Any chain running ArbOS40 can upgrade non-validator nodes to latest version.
  • Any chain running ArbOS40, upgrading validators to Nitro v3.10.x needs to update module root to Consensus v60-rc.4 at the same time.  Do NOT perform ArbOS upgrade
  • If a chain is on ArbOS40 and has already upgraded validators to v3.10.x, the module root should be updated to Consensus v60-rc.4 as soon as possible. Do NOT perform ArbOS upgrade

Important for any chains that previously upgraded to ArbOS51 with consensus_v51:

  • Validator should use configuration option --node.block-validator.pending-upgrade-module-root="" to avoid performing unnecessary work trying to validate consensus_v51.1.

v3.10.0 - 2026-05-05

Configuration

  • Add --execution.disable-arbowner-ethcall flag to disable ArbOwner precompile calls outside on-chain execution. [PR]
  • Add --stylus-target.native-stack-size config to set the initial Wasmer coroutine stack size for Stylus execution. [PR]
  • Add --execution.disable-arbowner-ethcall flag to disable ArbOwner precompile calls outside on-chain execution. [PR]
  • Add --stylus-target.native-stack-size config to set the initial Wasmer coroutine stack size for Stylus execution. [PR]
  • Add --execution.stylus-target.allow-fallback flag: if true, fall back to an alternative compiler when compilation of a Stylus program fails (default: true). [PR]
  • Adds --execution.sequencer.transaction-filtering.disable-delayed-sequencing-filter to enable/disable filtering when sequencing delayed messages. [PR]
  • Added --node.block-validator.validation-spawning-allowed-timeouts (default 3): maximum number of timeout errors allowed per validation before treating it as fatal. Timeout errors have their own counter, separate from --node.block-validator.validation-spawning-allowed-attempts. [PR]
  • The new --node.batch-poster.compression-levels flag allows operators to specify different compression strategies based. [PR]
    • backlog: The minimum backlog size (in number of batches) at which this configuration applies. First entry must be zero. [PR]
    • level: The initial compression level applied to messages when they are added to a batch once the backlog reaches or exceeds the configured threshold. [PR]
    • recompression-level: The recompression level to use for already compressed batches when the backlog meets or exceeds the threshold. [PR]
    • Example configuration:. [PR]
  • Validation rules:. [PR]
    • The backlog values must be in strictly ascending order. [PR]
    • Both level and recompression-level must be weakly descending (non-increasing) across entries. [PR]
    • recompression-level must be greater than or equal to level within each entry (recompression should be at least as good as initial compression). [PR]
    • All levels must be in valid range: 0-11. [PR]
    • Add --execution.address-filter.enable flag to enable/disable address filtering. [PR]
    • Add --execution.address-filter.poll-interval flag to set the polling interval for the s3 syncer, e.g. 5m. [PR]
    • Add --execution.address-filter.cache-size flag to set the LRU cache size for address lookups (default: 10000). [PR]
    • Add --execution.address-filter.s3.* group of flags to configure S3 access:. [PR]
      • Add --execution.address-filter.s3.bucket flag to specify the S3 bucket name for the hashed address list. [PR]
      • Add --execution.address-filter.s3.region flag to specify the AWS region. [PR]
      • Add --execution.address-filter.s3.object-key flag to specify the S3 object key for the hashed address list. [PR]
      • Add --execution.address-filter.s3.access-key flag to specify the AWS access key. [PR]
      • Add --execution.address-filter.s3.secret-key flag to specify the AWS secret key. [PR]
      • Add --execution.address-filter.s3.chunk-size-mb flag to set S3 multipart download part size in MB (default: 32). [PR]
      • Add --execution.address-filter.s3.concurrency flag to set S3 multipart download concurrency (default: 10). [PR]
      • Add --execution.address-filter.s3.max-retries flag to set maximum retries for S3 part body download (default: 5). [PR]
  • Init config must not have empty set to true when genesis-json-file is provided. [PR]
  • Add execution.sequencer.event-filter.path to configure sequencer-side event-based transaction filtering via a JSON rules file. [PR]
    • Extend genesis.json with serializedConfig and arbOSInit.initialL1BaseFee fields. [PR]
    • Remove initial-l1-base-fee CLI flag from genesis-generator. [PR]
  • Added --execution.address-filter.s3.endpoint for S3-compatible services (MinIO, localstack). [PR]
  • Add --node.data-availability.rest-aggregator.connection-wait how long to wait for initial anytrust DA connection until it errors (re-attempts every 1 second) (to be deprecated, use da.anytrust* instead). [PR]
  • Add --node.da.anytrust.rest-aggregator.connection-wait how long to wait for initial anytrust DA connection until it errors (re-attempts every 1 second). [PR]
  • Add --anytrust.rest-aggregator.connection-wait how long to wait for initial anytrust DA connection until it errors (re-attempts every 1 second). [PR]
  • Add address-filter.address-checker-worker-count to configure the number of address checker workers. [PR]
  • Add address-filter.address-checker-queue-size to configure the address checker queue capacity. [PR]
  • cmd/daserver -> cmd/anytrustserver
  • cmd/datool -> cmd/anytrusttool
  • --node.data-availability.* -> --node.da.anytrust.*
  • --node.batch-poster.das-retention-period -> --node.batch-poster.anytrust-retention-period
  • --node.data-availability.rpc-aggregator.das-rpc-client.* -> --node.data-availability.rpc-aggregator.rpc-client.*
  • --node.batch-poster.max-size -> --node.batch-poster.max-calldata-batch-size
  • --node.da-provider.* -> --node.da.external-provider.*
  • anytrusttool --das-retention-period -> --anytrust-retention-period
  • anytrusttool --das-rpc-client.* -> --rpc-client.*
  • daprovider --anytrust.parent-chain.node-url -> --parent-chain-node-url
  • daprovider --anytrust.parent-chain.connection-attempts -> --parent-chain-connection-attempts
  • daprovider `...
Read more

Arbitrum Nitro v3.10.0-rc.10

Pre-release

Choose a tag to compare

@joshuacolvin0 joshuacolvin0 released this 07 May 22:01
b1cf6db

Release candidates should not be run in general

This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.0-rc.10-b1cf6db
This Docker image specifies default flags in its entrypoint which should be replicated if you're overriding the entrypoint: /usr/local/bin/nitro --validation.wasm.allowed-wasm-module-roots /home/user/nitro-legacy/machines,/home/user/target/machines

Important for any chains still on ArbOS40:

  • If you're running a validator without a split validation server (this will be true of most validators), you should instead use the image offchainlabs/nitro-node:v3.10.0-rc.10-b1cf6db-validator which has the extra script /usr/local/bin/split-val-entry.sh as the default entrypoint (no need to override the default entrypoint). This will run both v3.10.0 and v3.7.6 validator workers for you.
  • If you are using a split validator, you do not want to use -validator image, you need to run a validator worker on v3.7.6 as well as a worker for v3.10.0

Important for any chains that previously upgraded to ArbOS51 with consensus_v51

  • Validator should use configuration option --node.block-validator.pending-upgrade-module-root="" to avoid performing unnecessary work trying to validate consensus_v51.1.