Skip to content

Bump to nitro v3.12.1 - #32

Merged
sduchesneau merged 3957 commits into
release/v3.x-fhfrom
bump/v3.12.1-fh3.0
Oct 19, 2026
Merged

sduchesneau merged 3957 commits into
release/v3.x-fhfrom
bump/v3.12.1-fh3.0

Conversation

@sduchesneau

@sduchesneau sduchesneau commented Oct 16, 2026 •

Copy link
Copy Markdown

Merges upstream tag v3.12.1 (includes v3.12.0 and v3.11.5). Files outside our own changes are identical to v3.12.1.

  • go-ethereum submodule points at d3459f8e99, the merge of Bump to the go-ethereum revision of nitro v3.12.1 go-ethereum#74.
  • Upstream workflows stay disabled, including the new nitro-reth-approvals-check.yml and zk-proving.yml.
  • Adds ACTIVATIONS.md, the ArbOS version inventory and each version's effect on Firehose blocks. All three chains are at ArbOS 61; v3.12.1 supports up to 61.

go build ./... passes, along with go vet on arbos, execution, precompiles, gethhook and arbnode. Building needs make target/lib/libstylus.a target/include/arbitrator.h first for the v3.12.1 Stylus C API.

eljobe and others added 30 commits August 25, 2026 06:59
…14-eip7702-seq-bug

Fix sequencer nonce tracking for self-sponsored EIP-7702 transactions
…-apis

limit rpc surface of el-proxy, valnode, tx filterer and bid validator
The script served at foundry.paradigm.xyz switched to foundryup-init
2.0.0, which prints PATH instructions instead of appending
~/.foundry/bin to ~/.bashrc. The contracts-builder stage relied on
sourcing ~/.bashrc to find forge, so 'make build-solidity' failed with
'forge: No such file or directory'. Set PATH explicitly via ENV
instead.

NIT-5526
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…irect

The previous commit copied the rustup curl flags but dropped -L.
sh.rustup.rs serves the script directly (200), while
foundry.paradigm.xyz 301-redirects to raw.githubusercontent.com, so
without -L curl pipes the redirect HTML into bash (-f only fails on
>=400, not 3xx), which exits 2 on the syntax error.
Review feedback on OffchainLabs#640: the harness lived in _test.go files, invisible
to the v2 system tests which import this package. Move external_l1 and
the tx-wait helpers it needs into non-test files, and replace the
7-value createExternalL1 signature with CreateExternalL1 taking
ExternalL1Params and returning an ExternalL1 struct with named fields.
The function body is intentionally untouched to keep the stacked
Amsterdam branch rebasing cleanly.
The test-system-external-l1 targets wrapped what is a plain go test
invocation. Keep only build-upstream-geth (which CI and the test error
messages depend on) and document the direct commands.
…26-fix-execution-spec-tests-nightly-ci-build-failure

Fix Docker build: new foundryup installer no longer edits ~/.bashrc
Under MEL no batch spending report reaches L2 within the window these
tests run in, so the batch poster is never registered in the L1 pricing
poster table and the reimbursement assertion at the end of
testSequencerPriceAdjustsFrom fails intermittently in the MEL CI shards.

Skip in the shared helper, which covers all five From*Gwei variants
across every MEL mode. The tests keep running in all non-MEL
configurations, where they are stable.
…20-expired-metric

Add sequencer metrics for txs dropped due to expired context
…fees-tests-under-mel

Skip TestSequencerPriceAdjustsFrom* under message extraction
geth v1.17.4 adds EIP-7928 block access list support; SetTxContext now
takes the BAL index, which follows geth's txIndex+1 convention (index 0
is reserved for pre-execution system calls). The value is only consumed
at ArbOS >= params.ArbosVersion_Amsterdam.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
geth v1.17.4 returns the transaction-local EIP-7928 block access list
as a new second value. It is nil below ArbOS
params.ArbosVersion_Amsterdam, and nitro does not produce block access
lists yet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
geth v1.17.4's ProcessParentBlockHash takes an EIP-7928 block access
list accumulator, into which it merges the access list returned by
StateDB.Finalise. That list is nil below ArbOS
params.ArbosVersion_Amsterdam, so nil is valid until ArbOS supports
Amsterdam and threads a real accumulator through.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
geth v1.17.4's consensus.Engine.Finalize takes an EIP-7928 block access
list index and accumulator, which upstream engines use to record
finalization state changes when Amsterdam is active. Nitro does not
produce block access lists below ArbOS params.ArbosVersion_Amsterdam,
so the parameters are ignored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
geth v1.17.4's core.ApplyTransaction returns the transaction-local
EIP-7928 block access list as a new second value.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
geth v1.17.4's ethdb.AncientStore scopes Tail and TruncateTail to a
tail group. The unimplemented stubs ignore the group.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
eljobe and others added 21 commits September 1, 2026 09:25
…t-5512-arb-stylus-cut

The Stylus compile seam: `arb-stylus` builds for wasm32
…sfer-base-scanarios

system tests v2: Transfer base scenarios
…t-5577-ccbrotli

nitro-reth links the prebuilt brotli libs; common CI setup action
(cherry picked from commit db99e32746932215a17aec3bb055e7375a51e343)
…rt-3.12

Bump go-ethereum to release cancelled eth_getLogs searches (backport OffchainLabs#862)
FillReceiptInfo read p.msg.Tx, which is nil for a message built from
RPC call arguments. GetPaidGasPrice gives the same price without it.

(cherry picked from commit 13eb5d90e52c0a21ac4b34fc0b58abb922935d3c)
GetPaidGasPrice gives min(baseFee, GasFeeCap) for a retry, where
Receipt.DeriveFields gives baseFee. Signed txs now use the same formula.

(cherry picked from commit fa130685799a9df5cbf8250594daa122a7091289)
Nothing reads the receipt price for a message with no Tx. A nil guard
on the original CollectTips branch is enough.

(cherry picked from commit ec06aa3980f95495aefc2dc4d7556b39272277d3)
…rt-3.12

Fix debug_traceCall and eth_simulateV1 crash when collecting tips (backport OffchainLabs#910)
…-backport-3.12

backport(NIT-5735): nitro feed client backfills over rest
…-for-3.12

Backport 3.12: Refuse Stylus activation for requests not executed onchain
When node.feed.input.rest.url is unset, backfill uses the first feed url's
host as the base URL. Backfill stays opt-in via node.feed.input.rest.enable.

Backport of OffchainLabs#953.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efault-backport-3.12

port - Set default feed REST endpoint if not set explicitly
@sduchesneau
sduchesneau marked this pull request as ready for review October 19, 2026 18:58
@sduchesneau
sduchesneau merged commit 58d3595 into release/v3.x-fh Oct 19, 2026
3 of 5 checks passed
@sduchesneau
sduchesneau deleted the bump/v3.12.1-fh3.0 branch October 19, 2026 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.