Skip to content

Conversation

eljobe
Copy link
Member

@eljobe eljobe commented Oct 14, 2025

When there is a failure fetching blobs from blob_sidecars switch to blobs (and vice-versa.)

This makes sense because a node can start syncing before the fusaka fork, and we can automatically switch to the new blobs endpoint when the legacy endpoint fails (because it was strongly deprecated and removed in 2 clients.)

This PR also introduces a --parent-chain.blob-client.dangrous.skip-blob-proof-verification flag which allows skipping the verification of blob proofs returned from the beacon client. This allows the node to be robust when connecting to a beacon node client like Teku which doesn't provide blob proofs after the fusaka fork AND doesn't support the new blobs endpoint.

Fixes: #3835

When there is a failure fetching blobs from `blob_sidecars` switch to
`blobs` (and vice-versa.)

This makes sense because a node can start syncing before the fusaka fork, and we
can automatically switch to the new `blobs` endpoint when the legacy endpoint
fails (because it was strongly deprecated and removed in 2 clients.)
joshuacolvin0
joshuacolvin0 previously approved these changes Oct 14, 2025
Copy link
Member

@joshuacolvin0 joshuacolvin0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

hkalodner
hkalodner previously approved these changes Oct 14, 2025
Copy link
Contributor

@hkalodner hkalodner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

KolbyML
KolbyML previously approved these changes Oct 14, 2025
Copy link
Member

@KolbyML KolbyML left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit: looks good

@eljobe eljobe enabled auto-merge October 14, 2025 22:49
@eljobe eljobe disabled auto-merge October 14, 2025 22:58
Copy link

github-actions bot commented Oct 14, 2025

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
2141 4 2137 0
View the top 3 failed tests by shortest run time
TestValidationInputsAtWithWasmTarget
Stack Traces | 3.360s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
        	/opt/hostedtoolcache/go/1.25.3/x64/src/testing/testing.go:1997 +0x465
        
    validation_inputs_at_test.go:70: �[31;1m [] failed calculating position for validation: batch not found on L1 yet �[0;0m
�[90mkeccak: len 6.21K vs 18.02K�[0;0m
�[90mkeccak: deployed to 0x4d283c85f09562f31fD635abC5261A670461e13E�[0;0m
�[90mtrace: ["user_entrypoint","msg_reentrant","pay_for_memory_grow","read_args","account_balance","account_codehash","account_codehash","account_codehash","account_code_size","account_code","account_code_size","account_code_size","account_code_size","account_code","account_code_size","account_code_size","account_code","block_basefee","chainid","block_coinbase","block_gas_limit","block_timestamp","contract_address","msg_sender","msg_value","tx_origin","tx_gas_price","tx_ink_price","block_number","evm_gas_left","evm_ink_left","call_contract","evm_gas_left","evm_ink_left","storage_flush_cache","write_result","user_returned"]�[0;0m
�[90mTime to activate keccak: 149.337439ms�[0;0m
�[34;1mdeployed keccak to 0x285def0ee6e981fa1C3aF7a1176f54F6dDc6B355�[0;0m
�[90mmulticall.wasm 0x457b1BA688E9854BDbed2f473F7510C476A3dA09�[0;0m
�[90mstorage.wasm   0xA02062aa4Cb0872315ACA3eA6dBF077d90B2DAC1�[0;0m
�[90mkeccak.wasm    0x4d283c85f09562f31fD635abC5261A670461e13E�[0;0m
�[90mmock.evm       0x209A869BA8373Fc47655D22Ee00e38B6Bf159f0F�[0;0m
�[34;1mChecking storage after call tree with CALL�[0;0m
�[34;1mChecking storage after call tree with DELEGATECALL�[0;0m
�[34;1mChecking static call�[0;0m
�[34;1mChecking static call write protection�[0;0m
�[34;1mCalling the ArbosTest precompile (Rust => precompile)�[0;0m
ERROR[10-14|23:44:41.062] running transactions..                   blockNum=10 remaining=0
�[34;1mChecking consensus revert data (Rust => precompile)�[0;0m
--- FAIL: TestValidationInputsAtWithWasmTarget (3.36s)
TestVersion30
Stack Traces | 13.790s run time
... [CONTENT TRUNCATED: Keeping last 20 lines]
=== PAUSE TestVersion30
=== CONT  TestVersion30
    precompile_inclusion_test.go:90: goroutine 455226 [running]:
        runtime/debug.Stack()
        	/opt/hostedtoolcache/go/1.25.3/x64/src/runtime/debug/stack.go:26 +0x5e
        github.com/offchainlabs/nitro/util/testhelpers.RequireImpl({0x4082470, 0xc09f3a3340}, {0x40406a0, 0xc10c0348d0}, {0x0, 0x0, 0x0})
        	/home/runner/work/nitro/nitro/util/testhelpers/testhelpers.go:29 +0x55
        github.com/offchainlabs/nitro/system_tests.Require(0xc09f3a3340, {0x40406a0, 0xc10c0348d0}, {0x0, 0x0, 0x0})
        	/home/runner/work/nitro/nitro/system_tests/common_test.go:1723 +0x5d
        github.com/offchainlabs/nitro/system_tests.testPrecompiles(0xc09f3a3340, 0x1e, {0xc084623db0, 0x6, 0x48e1d4?})
        	/home/runner/work/nitro/nitro/system_tests/precompile_inclusion_test.go:90 +0x371
        github.com/offchainlabs/nitro/system_tests.TestVersion30(0xc09f3a3340?)
        	/home/runner/work/nitro/nitro/system_tests/precompile_inclusion_test.go:67 +0x798
        testing.tRunner(0xc09f3a3340, 0x3cca9c0)
        	/opt/hostedtoolcache/go/1.25.3/x64/src/testing/testing.go:1934 +0xea
        created by testing.(*T).Run in goroutine 1
        	/opt/hostedtoolcache/go/1.25.3/x64/src/testing/testing.go:1997 +0x465
        
    precompile_inclusion_test.go:90: �[31;1m [] execution aborted (timeout = 5s) �[0;0m
--- FAIL: TestVersion30 (13.79s)
TestSequencerNonceHandling
Stack Traces | 27.390s run time
=== RUN   TestSequencerNonceHandling
INFO [10-14|23:40:59.147] New Key                                  name=Owner       Address=0x26E554a8acF9003b83495c7f45F06edCB803d4e3
INFO [10-14|23:40:59.147] New Key                                  name=Faucet      Address=0xaF24Ca6c2831f4d4F629418b50C227DF0885613A
WARN [10-14|23:40:59.147] Sequencer ReadFromTxQueueTimeout is higher than MaxBlockSpeed ReadFromTxQueueTimeout=1s MaxBlockSpeed=10ms
WARN [10-14|23:40:59.147] Sequencer ReadFromTxQueueTimeout is higher than MaxBlockSpeed ReadFromTxQueueTimeout=1s MaxBlockSpeed=10ms
=== PAUSE TestSequencerNonceHandling
=== CONT  TestSequencerNonceHandling
�[90mink price=9554�[0;0m
�[90mstorage: len 4.69K vs 13.85K�[0;0m
INFO [10-14|23:45:21.853] HTTP server stopped                      endpoint=127.0.0.1:45875
TRACE[10-14|23:45:21.853] P2P networking is spinning down
    seq_nonce_test.go:209: all the following valid txs should have been sequenced in the immediate next block
--- FAIL: TestSequencerNonceHandling (27.39s)

📣 Thoughts on this report? Let Codecov know! | Powered by Codecov

@eljobe eljobe dismissed stale reviews from KolbyML, hkalodner, and joshuacolvin0 via 39614c1 October 14, 2025 23:22
Copy link
Contributor

@hkalodner hkalodner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@KolbyML KolbyML left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit: looks good

@eljobe eljobe enabled auto-merge October 14, 2025 23:28
@eljobe eljobe added this pull request to the merge queue Oct 14, 2025
Merged via the queue into master with commit 92870c3 Oct 15, 2025
23 checks passed
@eljobe eljobe deleted the gracefulness branch October 15, 2025 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v3.7.5 fails to sync with getBlobs errors

5 participants