Repository navigation
Switch Arbitrum Firehose tracing to the shared tracer - #71
Merged
sduchesneau merged 3 commits intoOct 1, 2026
Merged
Conversation
Arbitrum specific handling stays in the adapter. Output drops the Firehose 2.3 backward compatibility mode, gas changes and no-op state changes.
maoueh
approved these changes
Oct 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the Arbitrum Firehose instrumentation onto
evm-firehose-tracer-go/v5, like the geth and Polygon branches (#70).Uses the shared tracer from streamingfast/evm-firehose-tracer-go master at feb9613, which contains #8 (Polygon hooks), #11 and #12 (Arbitrum hooks, keccak filter).
Kept as-is, through the adapter or new tracer-go support:
SlotNumber/BlockAccessListHashheader fieldsOutput changes (live blocks included, Arbitrum always ran the compatibility mode):
ver: 5:accountCreationsis no longer recorded.executedCodeis true when an opcode ran.returnDatais set.indexcounts logs of reverted calls, like the other chains, and reverted-call logs keep their index instead of 0.addressDelegatesTo(EIP-7702) is now set from ArbOS 40. The fork rules previously used the header difficulty, which is always 1 on Arbitrum, so Prague never activated for the tracer.FIRE INIT 3.1 firehose-evm-tracer/arbitrum …and a flash block index field (always 0) onFIRE BLOCK. Needs fireeth v2.14.4 or later.The
OnBlockUpdatehook, which nitro never called, and theOnNewAccounthook are removed.go.modmoves togo 1.25.4and picks up newerx/crypto,x/toolsandprotobufversions required by the shared tracer; nitro'sgo.modwill need the same bumps.Golden files were regenerated. Every difference falls into the categories above.
Battlefield
Ran battlefield-ethereum (
arbitrum-nitro-dev) againstnitrobuilt from streamingfast/nitro#31 (this branch as submodule): 67 passing, 26 pending, and the Firehose vs RPC block comparison passes.New
fh3.0/v5/arbitrum-nitro-devsnapshots compared with the oldfh2.3/arbitrum-nitro-devones (61 files): the differences are the compatibility-mode changes listed above (noaccountCreations,executedCode, CREATE input,returnData, ordinals), the duplicated selfdestruct withdraw removed, no-op balance and code changes removed, 2 reverted-call log indexes, and keccak preimages dropped by the filter. The remaining value differences are ArbOS L1 pricing storage and balances, which vary with gas prices on each fresh dev chain.The EIP-7702 battlefield tests are skipped on this network, the ArbOS 40 delegation fix is covered by a unit test only.
The battlefield run used an earlier tracer-go commit (c3c68f5). The final pin only adds master's faster
FIRE BLOCKprinting and a fix for dropped transactions in the parallel commit path, and the Firehose unit and golden tests pass unchanged with it.