Skip to content

Latest commit

 

History

History
429 lines (350 loc) · 42.6 KB

File metadata and controls

429 lines (350 loc) · 42.6 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

v3.10.0-rc.7 - 2026-04-10

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]

Added

  • ValidationInputsAt debug API now includes an ExpectedEndState field in the returned JSON, allowing the arbitrator and JIT provers to verify their computed end state when run from the command line with --json-inputs. [PR]
  • Nitro metrics for MEL and L3 system test. [PR]
  • Added support for id-set-filter for address filter reporting. [PR]
  • Linter for checking defer usage inside for loops. [PR]

Changed

  • Update the L2 msgs accumulation from merkle tree to a hash-chain based accumulation and implement extracting of message from the accumulator using preimages. [PR]
  • Poll parent chain's eth_config RPC (EIP-7910) to dynamically fetch blob schedule configuration. [PR]
  • Update the delayed msgs accumulation from merkle tree to a hash-chain based accumulation (Inbox-Outbox) and implement recording of their preimages and subsequently reading them using preimages. [PR]
  • Change hashing algorithm for address filtering feature to match the provider specs. [PR]
  • Log submitted express lane transactions like eth_sendRawTransaction. [PR]
  • Preallocate slice capacity across codebase to reduce memory allocations. [PR]
  • Update Stylus SDK to v0.10.3. [PR]
  • Replace InboxReader and InboxTracker implementation with Message extractor code. [PR]
  • Force net.Dialer to use "tcp4" instead of falling back to "tcp6". [PR]
  • Update Go to 1.25.9 in Dockerfile. [PR]

Fixed

  • Execution RPC client correctly handles ResultNotFound error. [PR]
  • Fixed flakiness in TestRetryableFilteringStylusSandwichRollback. [PR]
  • Add some micro-optimization to hashing of address filter implementation. [PR]
  • Fix deadlock in StopWaiterSafe.stopAndWaitImpl by releasing RLock before blocking on waitChan. [PR]
  • Re-enable erc20 test. [PR]
  • Fix Wasmer stack pool reusing stale smaller stacks after a stack size change. [PR]
  • Automatically detect native stack overflow during Stylus execution and recover. [PR]

Internal

  • Introduce rustfmt.toml. [PR]
  • Extract C-FFI related code from prover crate to prover-ffi. [PR]
  • Added additional tests for stylus contracts redeems. [PR]
  • Tx pre-checker uses gas estimation dry-run to detect filtered addresses before forwarding. [PR]
  • Replace TransactionFiltererAPI mutex with channel-based sequential processing and simplify Filter to not return a transaction hash. [PR]

v3.10.0-rc.6 - 2026-03-27

Configuration

  • 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]

Added

  • Add /liveness and /readiness HTTP health check endpoints to the transaction-filterer service. Readiness reports 503 until the sequencer client is connected. [PR]
  • Prevent MEL node startup if have non-MEL entries in consensus database. [PR]
  • Add tip collection ArbOS state field and precompile to allow the chain owner to enable or disable collecting transaction tips. [PR]
  • ArbOS 60: ArbOwner.setWasmActivationGas / ArbWasm.activationGas — chain owners can set a constant gas charge burned before each Stylus contract activation (default 0). [PR]

Changed

  • Disable cranelift fallback for non-onchain execution modes. [PR]
  • Add recovery to all stopWaiter threads. [PR]
  • Stylus: reject activation of wasm programs using the multi-value extension (functions with multiple return values, or block/loop/if with parameters) starting from ArbOS version 60. [PR]
  • Upgrade to wasmer v7.1.0. [PR]
  • Added consensus v60-rc.1 to Dockerfile. [PR]

Fixed

  • Fix nil-dereference and log format in cmd/nitro/nitro.go when machine locator creation fails; return early instead of falling through to dereference nil locator. [PR]
  • Part 3 of integrating MEL into master. [PR]
  • Re-enable download of previous consensus machine versions (v50, v51, v51.1, v60-alpha.1) in Docker build. [PR]
  • Harden blocks reexecutor with panic recovery for concurrent trie access races. [PR]
  • Do not access state in CollectTips for ArbOS < 60. [PR]

Internal

  • Introduce ValidationInput intermediate data structure with optional rkyv serialization in the validation crate. [PR]
  • Minor refactor in JIT, prover and validator crates. [PR]
  • Moved float-related utilities from arbmath to a new package floatmath. [PR]
  • Add TrackChild/StartAndTrackChild to StopWaiter for automatic LIFO child lifecycle management. [PR]

v3.10.0-rc.5 - 2026-03-27

Added

  • Group rollback for cascading redeem filtering using deferred statedb clone. [PR]

Changed

  • Update Go to 1.25.8 in Dockerfile. [PR]
  • Preflight the worst-case fragment read gas during multi-fragment Stylus activation, then charge the actual EXTCODECOPY-style cost after the fragment code is read. [PR]
  • Enable http communication between block validator and validation server. [PR]
  • Split ResourceKindStorageAccess into ResourceKindStorageAccessRead and ResourceKindStorageAccessWrite for finer-grained multi-dimensional gas metering. [PR]
  • Upgrade to wasmer7. [PR]

Fixed

  • Part 2 of integrating MEL into master. [PR]
  • Once timeout attempts are exhausted, treat it as any other, possibly fatal failure. [PR]
  • Use proper comparison for attempts. [PR]
  • Fix bold StopWaiter usage: start child structs on their own StopWaiters instead of the parent's. Fix StopAndWait ordering. [PR]
  • Fix multi-gas refunds in retryables (ArbOS60). [PR]
  • Fix StopWaiter lifecycle ordering: stop children before parent in StopAndWait, and pass managed context to children in Start. [PR]
  • Fix MEL feature flag bugs: nil message dereference in delayed sequencer, incorrect waitingForFinalizedBlock domain, and missing BatchPoster+MEL config validation. [PR]
  • Fix ValidationSpawnerRetryWrapper lifecycle: reuse one wrapper per module root instead of creating and leaking one per validation. [PR]
  • Fix BroadcastClients launching coordination goroutine on child Router's StopWaiter instead of its own. [PR]
  • Fix ValidationServer and ExecutionSpawner missing StopAndWait for their children. [PR]
  • Handle too-short AnyTrust certificate data as empty batches instead of crashing. [PR]

Internal

  • ArbGasInfo.GetMultiGasPricingConstraints now returns resources in deterministic order. [PR]
  • Move exponent validation in ArbOwner.SetMultiGasPricingConstraints outside the per-constraint loop. [PR]
  • Add JWT authentication support to the Rust validation server. [PR]
  • Move express lane service and tracker from execution/gethexec to the timeboost package. [PR]
  • Block sequencing until address filter rules are loaded. [PR]

v3.10.0-rc.4 - 2026-03-27

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 (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]

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 PruneExecutionDB only depend on executionDB by removing consensusDB dependency. [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/0X hex prefix. Go's encoding/hex.DecodeString does not handle the prefix, so it is now stripped before decoding. [PR]
  • Fix debug_executionWitness endpoint. [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 List error 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's Debug and Display is 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_size field non-mandatory. [PR]

v3.10.0-rc.3 - 2026-02-23

Added

  • New dangerous parameters --node.bold.dangerous.assume-valid and --node.bold.dangerous.assume-valid-hash to have validator assume all messages up to given message have already been validated. [PR]
  • Filtered retryable submission redirect: when an ArbitrumSubmitRetryableTx is in the onchain filter, redirect beneficiary/feeRefundAddr and skip auto-redeem. [PR]
  • Add consensus v51.1 to dockerfile. [PR]

Fixed

  • Fix expose-multigas feature when using a live tracer. [PR]
  • Gracefully handle missing sequencerClient in TransactionFilterer. [PR]
  • Fix filtered ArbitrumDepositTx (L1-to-L2 ETH deposits) permanently stalling the delayed sequencer. [PR]
  • Version-gate FilteredTransactionsState so it is not opened on pre-v60 blocks. [PR]

Internal

  • Introduce MachineLocator for Validator. [PR]
  • Fix machine locator tests. [PR]
  • Add support for consensus v60-alpha.1. [PR]

v3.10.0-rc.2 - 2026-02-23

Configuration

  • 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]

Added

  • cc_brotli optional feature which when enabled compiles brotli automatically using Rust build scripts. [PR]
  • transaction-filterer command, responsible to receive a transaction that should be filtered, and adding that transaction to the ArbFilteredTransactionsManager precompile. [PR]
  • Increase Stylus smart contract size limit via merge-on-activate. [PR]
  • New --node.batch-poster.compression-levels configuration flag that accepts a JSON array of compression configurations based on batch backlog thresholds. [PR]
  • Support for defining compression level, recompression level, and backlog threshold combinations. [PR]
  • Validation rules to ensure compression levels don't increase with higher backlog thresholds. [PR]
  • Add address filter service for compliance chains (addressfilter package). This feature enables sequencers to block transactions involving filtered addresses by polling a hashed address list from S3. Key capabilities include:. [PR]
    • S3-based hashed list synchronization with ETag change detection for efficient polling. [PR]
    • Lock-free HashStore using atomic pointer swaps for zero-blocking reads during updates. [PR]
    • Configurable LRU cache for high-performance address lookups (default: 10k entries). [PR]
    • Privacy-preserving design: addresses are never stored or transmitted in plaintext (SHA256 with salt). [PR]
    • Forward-compatible hash list JSON format with hashing_scheme metadata field. [PR]
    • Configurable S3 download settings (part size, concurrency, retries). [PR]
  • Added a new hook to replay.wasm to enable an action just before the first IO (wavmio) instruction. It is expected that every wasm execution environment will provide a module hooks with a method beforeFirstIO. JIT and Arbitrator provers have noop implementations. [PR]
  • Introduce event filter module for filtering transaction logs based on event selectors and topic-encoded addresses. [PR]
  • Execute onchain-filtered delayed transactions as no-ops: nonce is incremented, all gas is consumed, and a failed receipt is produced. The sender pays for the failed transaction as a penalty. [PR]
  • Added a test for batch resizing without fallback (TestBatchResizingWithoutFallback_MessageTooLarge) that validates ErrMessageTooLarge triggers batch rebuild while staying on the same DA provider. [PR]
  • Redis Pub/Sub–based executionSpawner implementation, including GetProof support, Redis-first interface selection, and the ability to run without any RPC dependency. [PR]
  • Multi-gas constraints to L2-pricing simulator. [PR]
  • L2 message accumulation in MEL and added MessageReader struct to extract recorded messages from preimages map. [PR]
  • Hashed address filter implementation for address filter interfaces with shared LRU caching. [PR]
  • sequencer metrics considering tx size: arb/sequencer/block/txsize and arb/sequencer/transactions/txsize histograms. [PR]
  • sequencer queue metrics: arb/sequencer/queue/length, arb/sequencer/queue/histogram, arb/sequencer/waitfortx. [PR]
  • sequencer block counter metrics: arb/sequencer/block/gaslimited, arb/sequencer/block/datalimited, arb/sequencer/block/txexhausted. [PR]
  • Add filteredFundsRecipient ArbOS state field and precompile for use on chains with transaction filternig. [PR]
  • arb_getL1Confirmations and arb_findBatchContainingBlock RPC APIs in Consensus side. [PR]
  • Sequencer calls transaction-filterer command if delayed transaction was filtered. [PR]
  • Config option genesis-json-file-directory which specifies the directory where genesis json files are located. [PR]
  • Adding/removing ChainOwner and NativeTokenOwner emits corresponding events. [PR]

Changed

  • Replace static batch poster compression configuration with dynamic, backlog-based compression level system. [PR]
  • Generate forward_stub.wasm at compile time using a build.rs script. Enables using prover as a cargo dependency. [PR]
  • improve forwarding transaction log in case of error. [PR]
  • Renamed arbkeccak wasm module to arbcrypto. [PR]
  • For wasm compilation target, EC recovery is now expected to be provided by the external arbcrypto module. For JIT and arbitrator provers we inject Rust-based implementation. [PR]
  • genesis-generator will now read chain config and init message data directly from genesis.json. [PR]
  • update ProgramPrepare to accept wasm and wasm_size. [PR]
  • remove unecessary statedb, addressForLogging, codePtr, codeSize, time, program, runCtxPtr params from ProgramPrepare. [PR]
  • Refactor openInitializeChainDb for Execution/Consensus split. [PR]
  • Create new config and init package to expose and organize init and config nitro functionality. [PR]
  • Nitro initialization uses the serialized chain config from genesis (instead of the deprecated Config field). [PR]

Deprecated

  • Deprecate --node.batch-poster.compression-level flag in favor of --node.batch-poster.compression-levels. [PR]

Fixed

  • Fixes bold next batch index and message count computation to cap based on relative comparisons. [PR]
  • Fix typed nil ExecutionSequencer in CreateConsensusNode causing crash in RPC client mode. [PR]
  • Fix address filter bypass for aliased addressed, unsigned delayed messages (L1-to-L2). [PR]
  • Fix calculation in the expected surplus in the sequencer metrics. [PR]

Internal

  • Implement capacity endpoint for Rust Validator. [PR]
  • Changed the max stylus contract fragments from uint16 to uint8 in ArbOwner and ArbOwnerPublic precompiles to not waste storage space. [PR]
  • Add continuous mode to JIT validator. [PR]
  • Introduce JitMachine (equivalent to Go counterpart JitMachine). [PR]
  • Introduce graceful shutdown through signals. [PR]
  • Move the server side of the validation communication protocol from jit to validation crate. [PR]
  • Add client side implementation. Add tests. [PR]
  • Merge wasm-libraries workspace with the main one. [PR]
  • Add support for multiple module roots for Validator. [PR]
  • Fix Validator continuous mode to run jit binary from inside tokio runtime. [PR]
  • Add BurnMultiGas to Burner interface. [PR]
  • Fix checking machine status in the Rust validation. [PR]
  • Run the continuous mode unit test in CI. [PR]
  • Add benchmarks comparing l2-pricing models. [PR]

v3.10.0-rc.1 - 2026-01-22

Configuration

  • 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 --anytrust.parent-chain.sequencer-inbox-address -> --parent-chain-sequencer-inbox-address
  • daserver --anytrust.parent-chain.node-url -> --parent-chain-node-url
  • daserver --anytrust.parent-chain.connection-attempts -> --parent-chain-connection-attempts
  • daserver --anytrust.parent-chain.sequencer-inbox-address -> --parent-chain-sequencer-inbox-address

Added

  • Enable Execution and Consensus to connect to the other via json-rpc [PR]
  • Merge go-ethereum v1.16.7: [PR]
  • Add log for genesis assertion validation: [PR]
  • Precompiles for multi dimensional multi constraint pricer: [PR]
  • Add return error in case of missing code for SetProgramCached: [PR]
  • Guard zero batch count in inbox search and avoid validator underflow: [PR]
  • Custom DA Complete Fraud Proof Support: [PR]
  • Make uncompressed batch size limit configurable: [PR]
  • Add new option to allow BlocksReExecutor to commit state to disk: [PR]
  • Implement Execution/Consensus interface over RPC: [PR]
  • Add comment about blob decoding failure: [PR]
  • Add metric when validator stops validating because of low memory: [PR]
  • Add address-based transaction filtering for sequencer. [PR]
  • Add support for Geth state size tracking with a flag --execution.caching.state-size-tracking. [PR]
  • Added a note to the --node.feed.output.signed flag that this will use batch poster's wallet for signing. [PR]
  • Add GetMultiGasBaseFee precompile to retrieve fees per resource kind. [PR]
  • Add execution.caching.trie-cap-batch-size option that sets batch size in bytes used in the TrieDB Cap operation (0 = use geth default). [PR]
  • Add execution.caching.trie-commit-batch-size option that sets batch size in bytes used in the TrieDB Commit operation (0 = use geth default). [PR]
  • Add database batch size checks to prevent panic on pebble batch overflow. [PR]
  • new wasm import programPrepare. [PR]
  • new wasm import programRequiresPrepare. [PR]
  • Enable running JIT validation with native input mode. [PR]
  • Enabled consensus node to communicate with ExecutionRecorder over RPC. [PR]
  • Implement recording of txs for MEL validation. [PR]
  • Added a new endpoint to arb namespace called arb_getMinRequiredNitroVersion that returns minimum required version of the nitro node software. [PR]
  • Add new precompile ArbFilteredTransactionsManager to manage filtered transactions. [PR]
  • Add transaction filterers to ArbOwner to limit access to ArbFilteredTransactionsManager. [PR]
  • Limit ArbOwners' ability to create transaction filterers with TransactionFilteringFromTime. [PR]

Changed

  • Arbos storage for multi dimensional constraints: [PR]
  • Arbitrator workspace enhancements: [PR]
  • Only sign important fields in feed: [PR]
  • Post report-only batch after MaxEmptyBatchDelay: [PR]
  • Remove bold/util/StopWaiter use util/StopWaiter instead: [PR]
  • Enhance state management in StopWaiterSafe: [PR]
  • Log critical error when fails to flush batch in setHead: [PR]
  • Broadcaster refactor: [PR]
  • Use stateless keccak where possible: [PR]
  • Optimize ConcatByteSlices to avoid repeated reallocations: [PR]
  • Centralize validator worker throttling in BlockValidator #NIT-3339: [PR]
  • Do not require BatchMetadata for reading DelayedInbox: [PR]
  • redis pubsub: add retries limit and option to disable retries: [PR]
  • Extract saturating arithmetics: [PR]
  • Add MaxTxSize check to ValidateExpressLaneTx(): [PR]
  • Adjust pricing formula with weight normalisation by max weight: [PR]
  • Make bids receiver buffer size configurable: [PR]
  • Improve utility for ensuring batch posting and processing: [PR]
  • Issue refunds based on multi-dimensinal base fee: [PR]
  • Rename bold packages: [PR]
  • Add isActiveSequencer to ExpressLaneTracker log messages: [PR]
  • Remove ExecutionRecorder.MarkValid and rely on ExecutionClient.SetFinalityData: [PR]
  • Unify keccaking: [PR]
  • Rename database variable names: [PR]
  • [config] Multiple DA provider infrastructure: [PR]
  • [config] Rename DAS to AnyTrust: [PR]
  • For wasm compilation target, keccak256 hashing is now expected to be provided by an external module. For JIT and arbitrator provers we inject Rust-based implementation. [PR]
  • Renamed execution subpackages and RPC structs, removing redundancy in names and making them more idiomatic. [PR]
  • Reorganize and refactor JIT validator CLI configuration. [PR]
  • Update contracts-legacy submodule pin to v2-main branch. [PR]
  • Rename database variable names [PR]
  • Move whole Rust codebase from arbitrator/ to crates/ directory. Move workspace files to the root. [PR]
  • Align the execution.ExecutionRecorder interface API with the other execution interfaces. Makes it more suitable for RPC calling. [PR]
  • Fix fifo lock flakey tests and implementation for bold. [PR]
  • Merged ethereum/go-ethereum v1.16.8. [PR]
  • Treat finality msg count as an intermittent issue. Only if it doesn't resolve itself within a short period of time, it will be logged as error. [PR]
  • Changed state-history default to zero for path archive. [PR]
  • Make the --cranelift flag turned on by default for JIT validator. [PR]
  • Remove manual gas math from ArbRetryableTx.Redeem by using static L2 pricing backlog update cost. [PR]

Removed

  • remove gas dimension tracers, system tests, and mock contracts. Multigas is now in the stf. [PR]
  • Remove bold/util/backend.go: [PR]

Fixed

  • Clarify Redis DAS signing key config: [PR]
  • Enhance data poster internal state handling: [PR]
  • Align ArbOwner precompile docs: [PR]
  • Update GenesisBlockNum to first nitro block in chain info: [PR]
  • Do not set init.empty to true when init.genesis-json-file is set: [PR]
  • Show correct value in redis database number error: [PR]
  • Fix timer leak in redislock refresh goroutine: [PR]
  • Use RWLock in StopWaiter: [PR]
  • Fix RecentWasms cache bug by using pointers in methods: [PR]
  • Fix maintenance ticker leak: [PR]
  • Prevent unintended mutation of latestHeader.Number [PR]
  • Fix invalid DA cert branch in inbox: [PR]
  • Solve reexecutor panic if header unavailable: [PR]
  • Prevent unintended mutation of latestHeader.Number in ParentChainIsUsingEIP7623: [PR]
  • Disable chunked-store in datool dumpkeyset [PR]
  • Add sequencer message length check in for the daprovider.Reader implementations. [PR]
  • Fix nil pointer panic in auctioneer_submitBid RPC method when receiving malformed bid data. [PR]
  • Fixed ValidateCertificate proof generation to panic on preimageType overflow (> 255) instead of silently using a fallback value, aligning with the Solidity one-step prover which reverts for this case. [PR]
  • Update implementation of receipts and txs fetching in mel-replay. [PR]
  • Added testing for recording and fetching of logs and txs needed for MEL validation. [PR]
  • Fixed batch poster on L3s not waiting for transaction receipt before posting next batch, causing duplicate batch attempts and spurious error logs. [PR]

Internal

  • [MEL] - Implement delayed message accumulation in native mode: [PR]
  • [MEL] - Update melextraction package to use logs instead of receipts and implement logs and headers fetcher: [PR]
  • [MEL] - Implement preimage recorder for DelayedMessageDatabase interface: [PR]
  • [MEL] - Implement recording of preimages related to sequencer batches (DA providers): [PR]
  • Add new boolean option to BlocksReExecutor called CommitStateToDisk that will allow BlocksReExecutor.Blocks range to not only re-executes blocks but it will also commit their state to triedb on disk. [PR]