This release is available as a Docker Image on Docker Hub at offchainlabs/nitro-node:v3.10.0-rc.4-3a9bb93
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.4-3a9bb93-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
Configuration
- 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(default3): 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]
Added
- Peform DNS lookups with IPv4 before IPv6. [PR]
- messageSequencingMode messageRunModes. To be used when filtering transactions in the geth layer. [PR]
- Fix Message Extraction function to handle cases when number of batch posting reports are not equal to the number of batches. [PR]
Changed
- Make
PruneExecutionDBonly depend onexecutionDBby removingconsensusDBdependency. [PR]
Removed
- Remove aborted snap sync code. [PR]
Fixed
- Part 1 of improving the MEL runner with latest, tested implementation. [PR]
- Use defer to release createBlocksMutex in sequencerWrapper to prevent deadlock on panic. [PR]
- Fix opening classic-msg database. [PR]
- Fix system test triggered panic in
updateFilterMapsHeads. [PR] - Fix address filter S3 syncer failing to parse hash list JSON when salt or hash values use
0x/0Xhex prefix. Go'sencoding/hex.DecodeStringdoes not handle the prefix, so it is now stripped before decoding. [PR] - Fix
debug_executionWitnessendpoint. [PR] - Improve block validator error message to suggest enabling staker in watchtower mode when wasmModuleRoot is not set from chain. [PR]
- If batchFetcher returns error use existing LegacyBatchGasCost value. [PR]
- Fix
rlp: expected Listerror when fetching transaction receipts for blocks with Arbitrum legacy receipt encoding. [PR] - Block validator no longer crashes on timeout errors during validation. Timeout errors are retried separately from other validation failures, up to a configurable limit. [PR]
Internal
- Make Validator request match clients request format. [PR]
- Cache precompiled wasm modules for repeated JIT validation. [PR]
- S3Syncer's context moved out from new to Initialize. [PR]
Bytes32'sDebugandDisplayis prefixed with 0x. [PR]- Allow validator's JitMachine to find jit path. [PR]
- Migrate Rust validation server to JSON RPC to match Go client communication. [PR]
- Move wavmio logic from JIT crate to caller-env (to be reused soon by SP1 validator). [PR]
- Make
ValidationInput.max_user_wasm_sizefield non-mandatory. [PR]
Full Changelog: v3.10.0-rc.3...v3.10.0-rc.4