-
Notifications
You must be signed in to change notification settings - Fork 131
eth/tracers: fix basefee context for traceBlock (#29811) #401
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This fixes an issue for `debug_traceBlock*` methods where the BASEFEE opcode was returning always 0. This caused the method return invalid results. Co-authored-by: Sina Mahmoodi <[email protected]>
We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2 |
We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, please sign the linked documents below to get yourself added. https://na3.docusign.net/Member/PowerFormSigning.aspx?PowerFormId=b15c81cc-b5ea-42a6-9107-3992526f2898&env=na3&acct=6e152afc-6284-44af-a4c1-d8ef291db402&v=2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* Fixes data_type.gen * Generates number in local.set * Fixes select * Create a metric for local block execution time * merge master and update geth pin * address PR comments * fix arbitrator-ci * fix typo * Uses catch all in match * add targets to arbitrator * Fixes data_type.gen * Fix `--execution.rpc.gas-cap=0` to again mean infinite gas There was a regression introduced in v3.3.0 where specifying `--execution.rpc.gas-cap=0` would cause gas related errors. * refactor: using slices.Contains to simplify the code Signed-off-by: dashangcun <[email protected]> * Allow forwarding of express lane txs to the chosen sequencer * Fix typo pimative -> primitive * Update geth pin to pull in extra comment * fix forwarding of expressLane txs when paused * Enable the geth trie prefetcher for the sequencer * Revert wasmer update New version of wasmer considers binaries created by current version of wasmer as incompatible. Will delay merging in new versions to reduce the number of times that stylus contracts will need to be recompiled. This reverts commit 93841ce, reversing changes made to 3ba8fc2. * prevent non-chosen sequencer from processing an expressLaneTx itself when forwarder is disabled (eg: when updating forwarder to a new address) * address PR comments * Auction resolution latency metric * Timeboost: swap sequencers seamlessly * Upgrade actions/upload-artifact in CI * prioritize reading from timeboostAuctionResolutionTxQueue * chore: fix some function names in comment Signed-off-by: linchizhen <[email protected]> * Add the installation of the cbindgen binary This binary is used in the make invocation, so it needs to be installed. * add system test to test seamless swap of active sequencer * fix lint errors * Add cbindgen to both workflows It turns out that the ci.yml workflow was also failing because of the removal of cbindgen from the Ubuntu 24.04 image used by the GitHub action runners. This change also moves the installation of cbindgen earlier in the codequl-analysis.yml file and expands the scope of what is cached after a rust installation to include the cbindgen binary (which is installed in ~/.cargo/bin) * Bump golang.org/x/net from 0.26.0 to 0.33.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.26.0 to 0.33.0. - [Commits](golang/net@v0.26.0...v0.33.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Implement CodeAt for contractAdapter CodeAt is needed if the contract call returns a zero length response. The bind library code uses CodeAt to check if there is any contract there at all. * make redis related updates more async * Move timeboost init back to mainImpl It doesn't work where it was before, the contractAdapter is unable to read the express lane contract. * address PR comments * Move express lane start to after init * Make auctioneer rpc namespace work on non jwt * make best effort to sync from redis during a swap * disable control transfer * update bold * geth-pin update: performance and metrics improvements * maintenance api * reduce roundInfo lock contention in syncFromRedis * address PR comments * Flushed TrieDB during maintenance * Forward auction resolution txs * Moves maintenance trie cap limit config to execution config * Fixes units related to trie cap limit config * Apply suggestions from code review Co-authored-by: Joshua Colvin <[email protected]> * Fixes mutex in FlushTrieDB * maintenance: improve api and address reviews * address PR comments * address PR comments * fix lint error * fix failing test after merge from upstream * update pin * fix for flatcalltracer originally just on v3.3.x branch fixes NIT-3071 Pulls in OffchainLabs/go-ethereum#401 * comment fixes by PR reviewe * fix TestPrestateTracingSimple * further fix TestPrestateTracingSimple * Add two new fields that were added to the rollup config * Extra logging for when forwarding fails * attempt to reduce flakiness of bold virtual block tests * Option to use redis coordinator to find sequencer This PR adds two new options for the autonomous-auctioneer which allow it to discover the active sequencer so that it can send its auction resolution transactions directly to it. If the sequencer is using the redis coordinator to manage which sequencer is active, then the same redis url can be passed as an option to the auctioneer. The new options are: --auctioneer-server.redis-coordinator-url --auctioneer-server.use-redis-coordinator * revert * revert changes to nitro-testnode * allow sequencer to not use block metadata * do not add zero metadata or track it when timeboost is not enabled * Use the correct error When the state provider isn't able to do its job because the chain is lagging behind head, it's supposed to use a predefined error from the l2stateprovider package. Instead, the nitro implemention of the provider was using a redefinition of the error. While this coding error easily accounts for why there were a bunch of ERROR logs about the chain's not keeping up with the latest changes, it does not explain why the test is sometimes flaky. I suspect that the original commits in this PR were chasing the ERROR logs in the flaky tests, but that those were not the root cause of the test failures. * bulk syncing of missing block metadata should start from the block number provided in trackBlockMetadataFrom flag, this prevents querying of stale missing data * Take out JWT from timeboost system tests * Add small sleep in BoLD when chain is behind Pulls in https://github.com/OffchainLabs/bold/pull/726/files * avoids leaking URL in fallback client * Fixes import lint issue * Update bold pin * TransactionStreamer: dont fetch block metadata when unnecessary avoid trying to fetch block metadata when nnecessary * fix failing tests * fix test * Revert "Update bold pin" This reverts commit 0800d46. * chainInfo supports track-block-metadata-from * Timeboost: Don't store or publish to feed, blockMetadata of blocks lower than TrackBlockMetadataFrom config option * allow sequencer to collect metadata without timeboost * remove accidental nitro-testnode pin update * add blockinfo to sepolia metadata * Fix reading of pending ExpressLane messages from redis * decouple scanning of keys from fetching of messages from redis * Mark `timeboost` as dangerous since it is a work in progress Timeboost is not completely finished yet, so not recommended for production use. * Fix configuration update * bound the search for pending messages in redis during a switchover * fix failing tests * update timeboost config in system_test * merge conflicts fix * Do not modify gas cap if already `0` (infinite) * update pin * update geth pin * remove block metadata from sepolia * Allow BlockMetadata to be generated when timeboost isn't enabled * fix lint error in systemTest * address PR comments * Start tracking metadata in sepolia Add configuration for block to start tracking sepolia metadata. * update stake-token to WETH on L1 * Fix syncMonitor's BlockMetadataByNumber response for arb classic block numbers * updated submodule dependencies & go files. * Fixing merge errors and warnings. * Fix merge conflicts with batch poster - handle unsupported DelayProof * Build Pass - waiting for delay proof info * Remove Duplicate Tests * Added missing lines in precompile test * skip TestArbos11To32UpgradeWithMcopy because the contracts version in v3.5.2 doesnt contain the mock contract * Update rust sdk version * Update submodules * Fix calldata * fix espresso dev node * Update comments for DelayProofs * revert change to make file * Update contracts submodule * Fix espresso tests * Fix tests * Update bold submodule * Ignore the unused function because it will be used under some flags * Another attempt * bold version update * Add CMake policy version minimum to build scripts * Update contracts submodule branch to specific commit * update to proper version of contracts (v2.1.3) * try solve github CI * update solgen * delete * fix CI * fix tests * fix challenge test * Revert "Add CMake policy version minimum to build scripts" This reverts commit 92a226a. * Revert "try solve github CI" This reverts commit 59d0548. * merge cmake changes * Update bold submodule to the latest commit * Simplify bold submodule referencing * Fix import lint errors (bold) * Fix lint --------- Signed-off-by: dashangcun <[email protected]> Signed-off-by: linchizhen <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Diego Ximenes <[email protected]> Co-authored-by: Ganesh Vanahalli <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: Joshua Colvin <[email protected]> Co-authored-by: dashangcun <[email protected]> Co-authored-by: Pepper Lebeck-Jobe <[email protected]> Co-authored-by: Maciej Kulawik <[email protected]> Co-authored-by: Lee Bousfield <[email protected]> Co-authored-by: Tristan Wilson <[email protected]> Co-authored-by: linchizhen <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <[email protected]> Co-authored-by: Tristan-Wilson <[email protected]> Co-authored-by: Derek Lee <[email protected]> Co-authored-by: Sneh Koul <[email protected]> Co-authored-by: Jeremy <[email protected]> Co-authored-by: Jeremy <[email protected]>
* Fix br_table * Fixes data_type.gen * Generates number in local.set * Fixes select * Create a metric for local block execution time * merge master and update geth pin * address PR comments * fix arbitrator-ci * fix typo * Uses catch all in match * add targets to arbitrator * Fixes data_type.gen * Fix `--execution.rpc.gas-cap=0` to again mean infinite gas There was a regression introduced in v3.3.0 where specifying `--execution.rpc.gas-cap=0` would cause gas related errors. * refactor: using slices.Contains to simplify the code Signed-off-by: dashangcun <[email protected]> * Allow forwarding of express lane txs to the chosen sequencer * Fix typo pimative -> primitive * Update geth pin to pull in extra comment * fix forwarding of expressLane txs when paused * Enable the geth trie prefetcher for the sequencer * Revert wasmer update New version of wasmer considers binaries created by current version of wasmer as incompatible. Will delay merging in new versions to reduce the number of times that stylus contracts will need to be recompiled. This reverts commit 93841ce, reversing changes made to 3ba8fc2. * prevent non-chosen sequencer from processing an expressLaneTx itself when forwarder is disabled (eg: when updating forwarder to a new address) * address PR comments * Auction resolution latency metric * Timeboost: swap sequencers seamlessly * Upgrade actions/upload-artifact in CI * prioritize reading from timeboostAuctionResolutionTxQueue * chore: fix some function names in comment Signed-off-by: linchizhen <[email protected]> * Add the installation of the cbindgen binary This binary is used in the make invocation, so it needs to be installed. * add system test to test seamless swap of active sequencer * fix lint errors * Add cbindgen to both workflows It turns out that the ci.yml workflow was also failing because of the removal of cbindgen from the Ubuntu 24.04 image used by the GitHub action runners. This change also moves the installation of cbindgen earlier in the codequl-analysis.yml file and expands the scope of what is cached after a rust installation to include the cbindgen binary (which is installed in ~/.cargo/bin) * Bump golang.org/x/net from 0.26.0 to 0.33.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.26.0 to 0.33.0. - [Commits](golang/net@v0.26.0...v0.33.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Implement CodeAt for contractAdapter CodeAt is needed if the contract call returns a zero length response. The bind library code uses CodeAt to check if there is any contract there at all. * make redis related updates more async * Move timeboost init back to mainImpl It doesn't work where it was before, the contractAdapter is unable to read the express lane contract. * address PR comments * Move express lane start to after init * Make auctioneer rpc namespace work on non jwt * make best effort to sync from redis during a swap * disable control transfer * update bold * geth-pin update: performance and metrics improvements * maintenance api * reduce roundInfo lock contention in syncFromRedis * address PR comments * Flushed TrieDB during maintenance * Forward auction resolution txs * Moves maintenance trie cap limit config to execution config * Fixes units related to trie cap limit config * Apply suggestions from code review Co-authored-by: Joshua Colvin <[email protected]> * Fixes mutex in FlushTrieDB * maintenance: improve api and address reviews * address PR comments * address PR comments * fix lint error * fix failing test after merge from upstream * update pin * fix for flatcalltracer originally just on v3.3.x branch fixes NIT-3071 Pulls in OffchainLabs/go-ethereum#401 * comment fixes by PR reviewe * fix TestPrestateTracingSimple * further fix TestPrestateTracingSimple * Add two new fields that were added to the rollup config * Extra logging for when forwarding fails * attempt to reduce flakiness of bold virtual block tests * Option to use redis coordinator to find sequencer This PR adds two new options for the autonomous-auctioneer which allow it to discover the active sequencer so that it can send its auction resolution transactions directly to it. If the sequencer is using the redis coordinator to manage which sequencer is active, then the same redis url can be passed as an option to the auctioneer. The new options are: --auctioneer-server.redis-coordinator-url --auctioneer-server.use-redis-coordinator * revert * revert changes to nitro-testnode * allow sequencer to not use block metadata * do not add zero metadata or track it when timeboost is not enabled * Use the correct error When the state provider isn't able to do its job because the chain is lagging behind head, it's supposed to use a predefined error from the l2stateprovider package. Instead, the nitro implemention of the provider was using a redefinition of the error. While this coding error easily accounts for why there were a bunch of ERROR logs about the chain's not keeping up with the latest changes, it does not explain why the test is sometimes flaky. I suspect that the original commits in this PR were chasing the ERROR logs in the flaky tests, but that those were not the root cause of the test failures. * bulk syncing of missing block metadata should start from the block number provided in trackBlockMetadataFrom flag, this prevents querying of stale missing data * Take out JWT from timeboost system tests * Add small sleep in BoLD when chain is behind Pulls in https://github.com/OffchainLabs/bold/pull/726/files * avoids leaking URL in fallback client * Fixes import lint issue * Update bold pin * TransactionStreamer: dont fetch block metadata when unnecessary avoid trying to fetch block metadata when nnecessary * fix failing tests * fix test * Revert "Update bold pin" This reverts commit 0800d46. * chainInfo supports track-block-metadata-from * Timeboost: Don't store or publish to feed, blockMetadata of blocks lower than TrackBlockMetadataFrom config option * allow sequencer to collect metadata without timeboost * remove accidental nitro-testnode pin update * add blockinfo to sepolia metadata * Fix reading of pending ExpressLane messages from redis * decouple scanning of keys from fetching of messages from redis * Mark `timeboost` as dangerous since it is a work in progress Timeboost is not completely finished yet, so not recommended for production use. * Fix configuration update * bound the search for pending messages in redis during a switchover * fix failing tests * update timeboost config in system_test * merge conflicts fix * Do not modify gas cap if already `0` (infinite) * update pin * update geth pin * remove block metadata from sepolia * Allow BlockMetadata to be generated when timeboost isn't enabled * fix lint error in systemTest * address PR comments * Start tracking metadata in sepolia Add configuration for block to start tracking sepolia metadata. * update stake-token to WETH on L1 * Fix syncMonitor's BlockMetadataByNumber response for arb classic block numbers * Celestia DA - Fix anytrust fallback issues - Add `Type()` to dapWritter to differentiate which dapWritter is being used (`celestia` or `anytrust`) - pin contracts branch and nitro testnode branch Update .gitmodules Update download-machine.sh Update Dockerfile Fix interface methods Merge branch 'celestia-v3.1.2' into celestia-v3.2.1 Pin contracts and testnode * fix go mod and pin submodules * Update submodules based on modified .gitmodules * Update contracts submodule to commit 1b04973 * updates on nitro-testnode v * Update go-ethereum submodule to commit b487f6fa36 * update bold to celestia branch * typo in gitmodules * Update bold submodule to the celestia latest commit * fix brotli lib issues * update node in fake.nix * update docker node version * update smart-account submodule commit * node18 * Update contracts submodule to v2.1.3-celestia-1b04973 * Keep upstream mod versions * fix docker file wasi -> wasip1 * Restore 3.5.2 rust wasm rules * test nits fixes * Fix some tests * Fix CI to match nitro-espresso origin * fix tests 2 * update bold commit with yulgen * Fix bold test * fix db ref * Fix old references to wasm2 and arbitrumdata2 * fix typos - duplicates * fix last test - das_test * Fix CI and update to last test * remove celestia failing lint * deadbeefbee * fix state scheme duplicate artifact * Update brotli commit to match upstream * add chains stake-token * add disableStylusCacheMetricsCollection check * update brotli script for updated commit --------- Signed-off-by: dashangcun <[email protected]> Signed-off-by: linchizhen <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Diego Ximenes <[email protected]> Co-authored-by: Ganesh Vanahalli <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: Joshua Colvin <[email protected]> Co-authored-by: dashangcun <[email protected]> Co-authored-by: Pepper Lebeck-Jobe <[email protected]> Co-authored-by: Maciej Kulawik <[email protected]> Co-authored-by: Lee Bousfield <[email protected]> Co-authored-by: Tristan Wilson <[email protected]> Co-authored-by: linchizhen <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <[email protected]> Co-authored-by: Tristan-Wilson <[email protected]> Co-authored-by: Derek Lee <[email protected]> Co-authored-by: Diego <[email protected]>
* Auction resolution latency metric * Timeboost: swap sequencers seamlessly * Upgrade actions/upload-artifact in CI * prioritize reading from timeboostAuctionResolutionTxQueue * chore: fix some function names in comment Signed-off-by: linchizhen <[email protected]> * Add the installation of the cbindgen binary This binary is used in the make invocation, so it needs to be installed. * add system test to test seamless swap of active sequencer * fix lint errors * Add cbindgen to both workflows It turns out that the ci.yml workflow was also failing because of the removal of cbindgen from the Ubuntu 24.04 image used by the GitHub action runners. This change also moves the installation of cbindgen earlier in the codequl-analysis.yml file and expands the scope of what is cached after a rust installation to include the cbindgen binary (which is installed in ~/.cargo/bin) * Bump golang.org/x/net from 0.26.0 to 0.33.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.26.0 to 0.33.0. - [Commits](golang/net@v0.26.0...v0.33.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Implement CodeAt for contractAdapter CodeAt is needed if the contract call returns a zero length response. The bind library code uses CodeAt to check if there is any contract there at all. * make redis related updates more async * Move timeboost init back to mainImpl It doesn't work where it was before, the contractAdapter is unable to read the express lane contract. * address PR comments * Move express lane start to after init * Make auctioneer rpc namespace work on non jwt * make best effort to sync from redis during a swap * disable control transfer * update bold * geth-pin update: performance and metrics improvements * maintenance api * reduce roundInfo lock contention in syncFromRedis * address PR comments * Flushed TrieDB during maintenance * Forward auction resolution txs * Moves maintenance trie cap limit config to execution config * Fixes units related to trie cap limit config * Apply suggestions from code review Co-authored-by: Joshua Colvin <[email protected]> * Fixes mutex in FlushTrieDB * maintenance: improve api and address reviews * address PR comments * address PR comments * fix lint error * fix failing test after merge from upstream * update pin * fix for flatcalltracer originally just on v3.3.x branch fixes NIT-3071 Pulls in OffchainLabs/go-ethereum#401 * comment fixes by PR reviewe * fix TestPrestateTracingSimple * further fix TestPrestateTracingSimple * Add two new fields that were added to the rollup config * Extra logging for when forwarding fails * attempt to reduce flakiness of bold virtual block tests * Option to use redis coordinator to find sequencer This PR adds two new options for the autonomous-auctioneer which allow it to discover the active sequencer so that it can send its auction resolution transactions directly to it. If the sequencer is using the redis coordinator to manage which sequencer is active, then the same redis url can be passed as an option to the auctioneer. The new options are: --auctioneer-server.redis-coordinator-url --auctioneer-server.use-redis-coordinator * revert * revert changes to nitro-testnode * allow sequencer to not use block metadata * do not add zero metadata or track it when timeboost is not enabled * Use the correct error When the state provider isn't able to do its job because the chain is lagging behind head, it's supposed to use a predefined error from the l2stateprovider package. Instead, the nitro implemention of the provider was using a redefinition of the error. While this coding error easily accounts for why there were a bunch of ERROR logs about the chain's not keeping up with the latest changes, it does not explain why the test is sometimes flaky. I suspect that the original commits in this PR were chasing the ERROR logs in the flaky tests, but that those were not the root cause of the test failures. * bulk syncing of missing block metadata should start from the block number provided in trackBlockMetadataFrom flag, this prevents querying of stale missing data * Take out JWT from timeboost system tests * Add small sleep in BoLD when chain is behind Pulls in https://github.com/OffchainLabs/bold/pull/726/files * avoids leaking URL in fallback client * Fixes import lint issue * Update bold pin * TransactionStreamer: dont fetch block metadata when unnecessary avoid trying to fetch block metadata when nnecessary * fix failing tests * fix test * Revert "Update bold pin" This reverts commit 0800d46. * chainInfo supports track-block-metadata-from * Timeboost: Don't store or publish to feed, blockMetadata of blocks lower than TrackBlockMetadataFrom config option * allow sequencer to collect metadata without timeboost * remove accidental nitro-testnode pin update * add blockinfo to sepolia metadata * Fix reading of pending ExpressLane messages from redis * decouple scanning of keys from fetching of messages from redis * Mark `timeboost` as dangerous since it is a work in progress Timeboost is not completely finished yet, so not recommended for production use. * Fix configuration update * bound the search for pending messages in redis during a switchover * fix failing tests * update timeboost config in system_test * merge conflicts fix * Do not modify gas cap if already `0` (infinite) * update pin * update geth pin * remove block metadata from sepolia * Allow BlockMetadata to be generated when timeboost isn't enabled * fix lint error in systemTest * address PR comments * Start tracking metadata in sepolia Add configuration for block to start tracking sepolia metadata. * update stake-token to WETH on L1 * Fix syncMonitor's BlockMetadataByNumber response for arb classic block numbers * Make get_logs call in small chunks * fix number of block * Use last confirm assertion in watcher to find the starting point * update bold * fix lint * fix lint * update default * Add trackers for missing block metadata retroactively * Hex encode bidder signatures in S3 published CSVs Previously the signature field, which is just raw bytes, was being written directly into the bid history CSVs which are published to S3 by the auctioneer. The uploaded files are for consumption by external parties and not used by the auctioneer after they have been uploaded so no changes are needed to read the files. This change is being made pre-mainnet so we don't need to worry about fixing existing files. (cherry picked from commit 6a7b125) * Stylus: visit all relevant contracts if deterministic * Fix deadlock caused by txStreamer trying to broadcast an executed message during a stopAndWait * change impl to handle deadlock by draining broadcastChan upon context cancellation * typo fix * stop broadcastServer after txStreamer * document changes * update buildspec to same as master * fix dockerfile * Add new Pectra header Pull in update to go-ethereum that adds new Pectra header * [Backport] Fix auction resolution during a tie * [Backport] Remove timeboost's MaxQueuedTxCount config option * [Backport] ExpressLane submissions are returned results immediately after they are queued and use channels in redisCoordinator to accept push-updates to redis instead of launching goroutines * add missing newLines * [Backport] Implement block-based timeout and set timeboost queued transactions to timeout at the round endtime * Handle getting creationAtBlock for l3 bold [backport OffchainLabs#2967] backport OffchainLabs#2967 and update BoLD repo to latest * Fix backport merge * Update bold fast confirmation based on legacy fast confirmation improvements * Memory improvements in DAS REST client Stream response body to json decoder. Use cancelable context for http get. * fix test * Make config options required for navigating pectra header issues default * [Backport] Increase default value for timeboost.max-future-sequence-distance to 1000 * Revert "Make config options required for navigating pectra header issues default" This reverts commit 5439d26. * [Backport] Express Lane Submission prechecker Original PR: OffchainLabs#3039 * [Backport] Change timeboost_auctionresolution metric to Gauge Auction resolution events happen only once per minute so using a histogram metric for arb_sequencer_timeboost_auction does not really make sense. Use a gauge intead so we can always see the last resolution duration. Originally merged in: OffchainLabs#3067 * Set block to start tracking arb1 block metadata * [Backport] Rectify evm depth modification while faking a call inside StartTxHook for arb type txs * Add RequestsHash to gen_header_json.go * Validate timeboost config options correctly * address PR comments and remove dangerous before timeboost * fix ci failure * Add a node.batch-poster.dangerous.fixed-gas-limit flag There are rare cases where problems with gas estimation could be malfunctioning and we want the ability to override it from a config flag. When --node.batch-poster.dangerous.fixed-gas-limit is non-zero, the value will be used as a the gas limit when posting batches and will completely bypass gas estimation. Resolves: NIT-3225 * batch_poster: override delayed inbox for gat estimation * batch_poster: update and document gas estimation code * [Backport] Make some timeboost errors clearer This is a backport of OffchainLabs#2987 It's not high priority to make it into the release but it makes some errors seen by express lane controllers a litle clearer. * add comment * Fix build * Comment failing test (in nitro) * fix ci * add myself as codeowner * play with the CI * Cherry pick network go PR * Fix go files * Bring back databases from 2 to 1 --------- Signed-off-by: linchizhen <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Tristan Wilson <[email protected]> Co-authored-by: Pepper Lebeck-Jobe <[email protected]> Co-authored-by: Ganesh Vanahalli <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: linchizhen <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Raul Jordan <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: Joshua Colvin <[email protected]> Co-authored-by: Diego Ximenes <[email protected]> Co-authored-by: Tristan-Wilson <[email protected]> Co-authored-by: Derek Lee <[email protected]> Co-authored-by: Aman Sanghi <[email protected]> Co-authored-by: Pepper Lebeck-Jobe <[email protected]> Co-authored-by: Sneh Koul <[email protected]>
* Timeboost: swap sequencers seamlessly * Upgrade actions/upload-artifact in CI * prioritize reading from timeboostAuctionResolutionTxQueue * chore: fix some function names in comment Signed-off-by: linchizhen <[email protected]> * Add the installation of the cbindgen binary This binary is used in the make invocation, so it needs to be installed. * add system test to test seamless swap of active sequencer * fix lint errors * Add cbindgen to both workflows It turns out that the ci.yml workflow was also failing because of the removal of cbindgen from the Ubuntu 24.04 image used by the GitHub action runners. This change also moves the installation of cbindgen earlier in the codequl-analysis.yml file and expands the scope of what is cached after a rust installation to include the cbindgen binary (which is installed in ~/.cargo/bin) * Bump golang.org/x/net from 0.26.0 to 0.33.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.26.0 to 0.33.0. - [Commits](golang/net@v0.26.0...v0.33.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Implement CodeAt for contractAdapter CodeAt is needed if the contract call returns a zero length response. The bind library code uses CodeAt to check if there is any contract there at all. * make redis related updates more async * Move timeboost init back to mainImpl It doesn't work where it was before, the contractAdapter is unable to read the express lane contract. * address PR comments * Move express lane start to after init * Make auctioneer rpc namespace work on non jwt * make best effort to sync from redis during a swap * disable control transfer * update bold * geth-pin update: performance and metrics improvements * maintenance api * reduce roundInfo lock contention in syncFromRedis * address PR comments * Flushed TrieDB during maintenance * Forward auction resolution txs * Moves maintenance trie cap limit config to execution config * Fixes units related to trie cap limit config * Apply suggestions from code review Co-authored-by: Joshua Colvin <[email protected]> * Fixes mutex in FlushTrieDB * maintenance: improve api and address reviews * address PR comments * address PR comments * fix lint error * fix failing test after merge from upstream * update pin * fix for flatcalltracer originally just on v3.3.x branch fixes NIT-3071 Pulls in OffchainLabs/go-ethereum#401 * comment fixes by PR reviewe * fix TestPrestateTracingSimple * further fix TestPrestateTracingSimple * Add two new fields that were added to the rollup config * Extra logging for when forwarding fails * attempt to reduce flakiness of bold virtual block tests * Option to use redis coordinator to find sequencer This PR adds two new options for the autonomous-auctioneer which allow it to discover the active sequencer so that it can send its auction resolution transactions directly to it. If the sequencer is using the redis coordinator to manage which sequencer is active, then the same redis url can be passed as an option to the auctioneer. The new options are: --auctioneer-server.redis-coordinator-url --auctioneer-server.use-redis-coordinator * revert * revert changes to nitro-testnode * allow sequencer to not use block metadata * do not add zero metadata or track it when timeboost is not enabled * Use the correct error When the state provider isn't able to do its job because the chain is lagging behind head, it's supposed to use a predefined error from the l2stateprovider package. Instead, the nitro implemention of the provider was using a redefinition of the error. While this coding error easily accounts for why there were a bunch of ERROR logs about the chain's not keeping up with the latest changes, it does not explain why the test is sometimes flaky. I suspect that the original commits in this PR were chasing the ERROR logs in the flaky tests, but that those were not the root cause of the test failures. * bulk syncing of missing block metadata should start from the block number provided in trackBlockMetadataFrom flag, this prevents querying of stale missing data * Take out JWT from timeboost system tests * Add small sleep in BoLD when chain is behind Pulls in https://github.com/OffchainLabs/bold/pull/726/files * avoids leaking URL in fallback client * Fixes import lint issue * Update bold pin * TransactionStreamer: dont fetch block metadata when unnecessary avoid trying to fetch block metadata when nnecessary * fix failing tests * fix test * Revert "Update bold pin" This reverts commit 0800d46. * chainInfo supports track-block-metadata-from * Timeboost: Don't store or publish to feed, blockMetadata of blocks lower than TrackBlockMetadataFrom config option * allow sequencer to collect metadata without timeboost * remove accidental nitro-testnode pin update * add blockinfo to sepolia metadata * Fix reading of pending ExpressLane messages from redis * decouple scanning of keys from fetching of messages from redis * Mark `timeboost` as dangerous since it is a work in progress Timeboost is not completely finished yet, so not recommended for production use. * Fix configuration update * bound the search for pending messages in redis during a switchover * fix failing tests * update timeboost config in system_test * merge conflicts fix * Do not modify gas cap if already `0` (infinite) * update pin * update geth pin * remove block metadata from sepolia * Allow BlockMetadata to be generated when timeboost isn't enabled * fix lint error in systemTest * address PR comments * Start tracking metadata in sepolia Add configuration for block to start tracking sepolia metadata. * update stake-token to WETH on L1 * Fix syncMonitor's BlockMetadataByNumber response for arb classic block numbers * Make get_logs call in small chunks * fix number of block * Use last confirm assertion in watcher to find the starting point * update bold * fix lint * fix lint * update default * Add trackers for missing block metadata retroactively * Hex encode bidder signatures in S3 published CSVs Previously the signature field, which is just raw bytes, was being written directly into the bid history CSVs which are published to S3 by the auctioneer. The uploaded files are for consumption by external parties and not used by the auctioneer after they have been uploaded so no changes are needed to read the files. This change is being made pre-mainnet so we don't need to worry about fixing existing files. (cherry picked from commit 6a7b125) * Stylus: visit all relevant contracts if deterministic * Fix deadlock caused by txStreamer trying to broadcast an executed message during a stopAndWait * change impl to handle deadlock by draining broadcastChan upon context cancellation * typo fix * stop broadcastServer after txStreamer * document changes * update buildspec to same as master * fix dockerfile * Add new Pectra header Pull in update to go-ethereum that adds new Pectra header * [Backport] Fix auction resolution during a tie * [Backport] Remove timeboost's MaxQueuedTxCount config option * [Backport] ExpressLane submissions are returned results immediately after they are queued and use channels in redisCoordinator to accept push-updates to redis instead of launching goroutines * add missing newLines * [Backport] Implement block-based timeout and set timeboost queued transactions to timeout at the round endtime * Handle getting creationAtBlock for l3 bold [backport OffchainLabs#2967] backport OffchainLabs#2967 and update BoLD repo to latest * Fix backport merge * Update bold fast confirmation based on legacy fast confirmation improvements * Memory improvements in DAS REST client Stream response body to json decoder. Use cancelable context for http get. * fix test * Make config options required for navigating pectra header issues default * [Backport] Increase default value for timeboost.max-future-sequence-distance to 1000 * Revert "Make config options required for navigating pectra header issues default" This reverts commit 5439d26. * [Backport] Express Lane Submission prechecker Original PR: OffchainLabs#3039 * [Backport] Change timeboost_auctionresolution metric to Gauge Auction resolution events happen only once per minute so using a histogram metric for arb_sequencer_timeboost_auction does not really make sense. Use a gauge intead so we can always see the last resolution duration. Originally merged in: OffchainLabs#3067 * Set block to start tracking arb1 block metadata * [Backport] Rectify evm depth modification while faking a call inside StartTxHook for arb type txs * Add RequestsHash to gen_header_json.go * Validate timeboost config options correctly * address PR comments and remove dangerous before timeboost * fix ci failure * Add a node.batch-poster.dangerous.fixed-gas-limit flag There are rare cases where problems with gas estimation could be malfunctioning and we want the ability to override it from a config flag. When --node.batch-poster.dangerous.fixed-gas-limit is non-zero, the value will be used as a the gas limit when posting batches and will completely bypass gas estimation. Resolves: NIT-3225 * batch_poster: override delayed inbox for gat estimation * batch_poster: update and document gas estimation code * [Backport] Make some timeboost errors clearer This is a backport of OffchainLabs#2987 It's not high priority to make it into the release but it makes some errors seen by express lane controllers a litle clearer. * add comment * pin submodules * Celestia DA - Fix anytrust fallback issues - Add `Type()` to dapWritter to differentiate which dapWritter is being used (`celestia` or `anytrust`) - pin contracts branch and nitro testnode branch Update .gitmodules Update download-machine.sh Update Dockerfile Fix interface methods Merge branch 'celestia-v3.1.2' into celestia-v3.2.1 Pin contracts and testnode * Update Dockerfile * update deps * Update nitro-testnode * Remove arbitrator duplicates * Fix merge leftover * Remove duplicate tests * Update contracts submodule * Update all submodules to celestia v3.5.6 compatible versions * Update submodules to match .gitmodules file --------- Signed-off-by: linchizhen <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Pepper Lebeck-Jobe <[email protected]> Co-authored-by: Ganesh Vanahalli <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: linchizhen <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tristan Wilson <[email protected]> Co-authored-by: Raul Jordan <[email protected]> Co-authored-by: Tsahi Zidenberg <[email protected]> Co-authored-by: Joshua Colvin <[email protected]> Co-authored-by: Diego Ximenes <[email protected]> Co-authored-by: Tristan-Wilson <[email protected]> Co-authored-by: Derek Lee <[email protected]> Co-authored-by: Aman Sanghi <[email protected]> Co-authored-by: Pepper Lebeck-Jobe <[email protected]> Co-authored-by: Diego <[email protected]>
related to NIT-3083
pulled in by OffchainLabs/nitro#2902
This fixes an issue for
debug_traceBlock*
methods where the BASEFEE opcode was returning always 0. This caused the method return invalid results.Co-authored-by: Sina Mahmoodi [email protected]
This fix was originally released as part of v3.3.x fork, adding it back to master branch as well