-
Notifications
You must be signed in to change notification settings - Fork 131
feat: engine_newPayloadV3: validate, execute & store block
#222
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
Merged
Conversation
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
github-merge-queue bot
pushed a commit
that referenced
this pull request
Aug 6, 2024
…idation (#220) **Motivation** Fetch cancun time from DB when validating payload v3 timestamp <!-- Why does this pull request exist? What are its goals? --> **Description** * Store cancun_time in db * Use the stored cancun_time when validating payload timestamp in `eth_newPayloadV3` * Replace update methods for chain data in `Store` with `set_chain_config` Bonus: * Move `NewPayloadV3Request` to its corresponding module and update is parsing to match the rest of the codebase <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes None, but is part of #51
ElFantasma
pushed a commit
that referenced
this pull request
Aug 6, 2024
**Motivation** Having a way to obtain lates/earliest/pending/etc block numbers <!-- Why does this pull request exist? What are its goals? --> **Description** * Add get and update methods for earliest, latest, finalized, safe & pending block number to `Store` & `StoreEngine` * Resolve block numbers from tag in rpc methods <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes None, but fixes many and enables others
github-merge-queue bot
pushed a commit
that referenced
this pull request
Aug 7, 2024
…pts & withdrawals (#225) **Motivation** These roots are currently being calculated using `from_sorted_iter` but without being sorted beforehand. This PR replaces this behavior with inserting directly into the trie to ensure that it is ordered, then computing the root (The same fix that has been previously applied to storage root) **Description** Fixes `compute_transactions_root`, `compute_receipts_root` & `compute_withdrawals_root` <!-- A clear and concise general description of the changes this PR introduces --> **Notes** After this change, the payloads created by kurtosis local net now pass the block hash validations in `engine_NewPayloadV3` <!-- Link to issues: Resolves #111, Resolves #222 --> Closes None, but is needed for #51 Co-authored-by: Federica Moletta <[email protected]>
xqft
pushed a commit
that referenced
this pull request
Nov 11, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #issue_number --------- Co-authored-by: Javier Rodríguez Chatruc <[email protected]> Co-authored-by: Javier Chatruc <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 13, 2025
) **Motivation** <!-- Why does this pull request exist? What are its goals? --> We use docker to generate reproducible guest program elfs. This slows down a lot the compilation time (about 15 minutes in a Mac). **Description** <!-- A clear and concise general description of the changes this PR introduces --> Don't use docker by default but only when releasing binaries. The docker build is triggered by setting the `PROVER_REPRODUCIBLE_BUILD` env var. <!-- Link to issues: Resolves #111, Resolves #222 --> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: ilitteri <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 13, 2025
…5326) **Motivation** [This](#5135 (comment)) change made the integration tests took longer, having to amp the amount of retries. <!-- Why does this pull request exist? What are its goals? --> **Description** Reverts this change and adds an [issue](#5325) for solving it. <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 -->
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 14, 2025
**Motivation** Add rpc and engine instrumentation and panels to our dashboards <!-- Why does this pull request exist? What are its goals? --> **Description** This PR adds a couple of changes to profiling.rs and our dashboard: - Add a simple way to time async funcrions without relying on `#instrument` (which would be more complex for every rpc) - Add namespace as a field to the instrumentation spans - Set a namespace for the old ones (`block_execution`) - Make the breakdown panels work with the new changes - Add new RPC and Engine panels <!-- A clear and concise general description of the changes this PR introduces --> <img width="2551" height="780" alt="image" src="https://github.com/user-attachments/assets/3b9feead-fc21-4115-b91b-118157477f18" /> <!-- Link to issues: Resolves #111, Resolves #222 --> --------- Co-authored-by: Copilot <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 14, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #issue_number --------- Co-authored-by: ilitteri <[email protected]> Co-authored-by: Javier Chatruc <[email protected]>
lakshya-sky
pushed a commit
to lakshya-sky/ethrex
that referenced
this pull request
Nov 17, 2025
…ambdaclass#5326) **Motivation** [This](lambdaclass#5135 (comment)) change made the integration tests took longer, having to amp the amount of retries. <!-- Why does this pull request exist? What are its goals? --> **Description** Reverts this change and adds an [issue](lambdaclass#5325) for solving it. <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 -->
lakshya-sky
pushed a commit
to lakshya-sky/ethrex
that referenced
this pull request
Nov 17, 2025
**Motivation** Add rpc and engine instrumentation and panels to our dashboards <!-- Why does this pull request exist? What are its goals? --> **Description** This PR adds a couple of changes to profiling.rs and our dashboard: - Add a simple way to time async funcrions without relying on `#instrument` (which would be more complex for every rpc) - Add namespace as a field to the instrumentation spans - Set a namespace for the old ones (`block_execution`) - Make the breakdown panels work with the new changes - Add new RPC and Engine panels <!-- A clear and concise general description of the changes this PR introduces --> <img width="2551" height="780" alt="image" src="https://github.com/user-attachments/assets/3b9feead-fc21-4115-b91b-118157477f18" /> <!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 --> --------- Co-authored-by: Copilot <[email protected]>
lakshya-sky
pushed a commit
to lakshya-sky/ethrex
that referenced
this pull request
Nov 17, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves lambdaclass#111, Resolves lambdaclass#222 --> Closes #issue_number --------- Co-authored-by: ilitteri <[email protected]> Co-authored-by: Javier Chatruc <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 18, 2025
**Motivation** jsonwebtoken crate doesn't validate `iat` claims even if we explicitly ask it, hence we needed tests. **Description** Added unit tests to correctly reject invalid `iat` claims. <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #5074 --------- Signed-off-by: lakshya-sky <[email protected]> Co-authored-by: lakshya-sky <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 18, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #issue_number --------- Co-authored-by: Copilot <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 19, 2025
**Motivation** The flag `--disable-deposit-contract-sync` no longer exists on the latest lighthouse version (v8.0.0) <!-- Why does this pull request exist? What are its goals? --> **Description** * Remove `--disable-deposit-contract-sync` flag from `start-lighthouse` target on `tooling/sync/Makefile` <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #issue_number
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 20, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> There was a race condition where dev's block producer starts before the RPC. In this scenario, the block producer tries to make some requests to the Engine API, failing three times in a row and thus ending. **Description** <!-- A clear and concise general description of the changes this PR introduces --> Add a small delay between retries so Engine RPC has time to get up <!-- Link to issues: Resolves #111, Resolves #222 --> Co-authored-by: Ivan Litteri <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 25, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> If CI fails, docker images may not be updated **Description** Add instructions on how to do it manually <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 -->
LeanSerra
pushed a commit
that referenced
this pull request
Nov 26, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> If CI fails, docker images may not be updated **Description** Add instructions on how to do it manually <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 -->
github-merge-queue bot
pushed a commit
that referenced
this pull request
Nov 27, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #issue_number Co-authored-by: Ivan Litteri <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 1, 2025
This reverts commit c7ec3b3. **Motivation** Multiple tests for Paris fork started failing on hive eest consume-engine and consume-rlp suites as of merging this PR. Noticed by `Hive Daily Report` workflow <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 -->
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 1, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> Migrations of SQL schema are tricky. If new tables were added, it has to be migrated manually. **Description** <!-- A clear and concise general description of the changes this PR introduces --> Make SQL schema setup sentences idempotent so they can be executed on every start up. <!-- Link to issues: Resolves #111, Resolves #222 -->
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 2, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> We want to offer ARM Docker images for both L1 and L2. **Description** <!-- A clear and concise general description of the changes this PR introduces --> Add support for ARM images and update CI release workflows to build so. <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #3667
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 2, 2025
**Motivation** Addressing #5344 by using the existing `block_hash_cache` to store block hashes looked up during `BLOCKHASH` opcode execution to speed up subsequent lookups <!-- Why does this pull request exist? What are its goals? --> **Description** * Add interior mutability to block_hash_cache (HashMap -> Arc<Mutex<BTreeMap>>) * Insert block hashes obtained during lookup to block_hash_cache (BLOCKHASH opcode) * Use oldest cached block successor to shortcut ancestor lookup (BLOCKHASH opcode) <!-- A clear and concise general description of the changes this PR introduces --> Benchmark Results: x33,6 improvement on BlockHash EEST gas benchmark: 1080.92 Mgas/s vs 32.18 Gas/s on main (7b4a0ba) <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #5344 --------- Co-authored-by: Edgar <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 2, 2025
**Motivation** * This would also allow us to filter out peers on wrong network or fork. **Description** * uses similar flow as lookup * store node records for future purposes such as filtering nodes on forkid and rlpx connections(#5423) <!-- Link to issues: Resolves #111, Resolves #222 --> Towards #5423 --------- Co-authored-by: lakshya-sky <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 2, 2025
**Motivation** Geth uses forkId for making connection as outlined in below posts and failing to provide one could mean that newer Geth clients would reject connections. https://ethereum-magicians.org/t/all-core-devs-testing-acdt-46-july-28-2025/24889/6 and ethereum/go-ethereum#31944. **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #5066 --------- Co-authored-by: lakshya-sky <[email protected]> Co-authored-by: Tomás Grüner <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 3, 2025
**Motivation** The l2 ci runs on any change in the fixture directory, we want it to run on certain paths. <!-- Why does this pull request exist? What are its goals? --> **Description** Specify which paths under fixtures the l2 ci should run on. <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 -->
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 4, 2025
**Motivation** We want to be able to send funds and call contracts from one L2 to another without having to pass through the L1 **Description** This PR adds the necessary changes to send funds and call contracts between 2 L2s. You can find details under `shared_bridge_steps.md` and `shared_bridge.md`. <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> --------- Co-authored-by: Gianbelinche <[email protected]> Co-authored-by: ilitteri <[email protected]> Co-authored-by: Ivan Litteri <[email protected]> Co-authored-by: Tomás Paradelo <[email protected]>
xqft
pushed a commit
that referenced
this pull request
Dec 4, 2025
**Motivation** We want to be able to send funds and call contracts from one L2 to another without having to pass through the L1 **Description** This PR adds the necessary changes to send funds and call contracts between 2 L2s. You can find details under `shared_bridge_steps.md` and `shared_bridge.md`. <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> --------- Co-authored-by: Gianbelinche <[email protected]> Co-authored-by: ilitteri <[email protected]> Co-authored-by: Ivan Litteri <[email protected]> Co-authored-by: Tomás Paradelo <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 4, 2025
…5322) **Motivation** Periodically checking and informing the user if there is a newer version of ethrex available <!-- Why does this pull request exist? What are its goals? --> **Description** * Periodically query the latest relese of ethrex on GitHub and check against current running version, inform the user via log if there is a newer version available. <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> --------- Co-authored-by: Tomás Grüner <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 10, 2025
) **Motivation** <!-- Why does this pull request exist? What are its goals? --> We don't need to specify the `platform` for the docker image anymore, as we now build it for both `amd64` and `arm64`. Also, `amd64` images are not working anymore on arm machines due to AVX. **Description** <!-- A clear and concise general description of the changes this PR introduces --> Remove the platform specified in the root's docker compose so it auto-detects which to use. <!-- Link to issues: Resolves #111, Resolves #222 -->
github-merge-queue bot
pushed a commit
that referenced
this pull request
Dec 11, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> Closes #5488 --------- Co-authored-by: lakshya-sky <[email protected]> Co-authored-by: ElFantasma <[email protected]>
ElFantasma
added a commit
that referenced
this pull request
Dec 12, 2025
**Motivation** <!-- Why does this pull request exist? What are its goals? --> **Description** <!-- A clear and concise general description of the changes this PR introduces --> <!-- Link to issues: Resolves #111, Resolves #222 --> **Checklist** - [ ] Updated `STORE_SCHEMA_VERSION` (crates/storage/lib.rs) if the PR includes breaking changes to the `Store` requiring a re-sync. Closes #5574 and #5575. Co-authored-by: Esteban Dimitroff Hodi <[email protected]>
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.
Motivation
Being able to fully validate execute and store blocks received by
engine_newPayloadV3Description
engine_newPayloadV3endpointFixes:
Genesis.get_block:INITIAL_BASE_FEEas base_fee_per_gas(With these fixes the genesis' block hash now matches the parentBlockHash of the next block when running with kurtosis)
beacon_root_contract_callnow sets the block's gas_limit to avoid tx validation errorsMisc:
compute_transactions_rootis now a standalone function matching the other compute functionsengine_newPayloadV3endpointExecutionPayloadV3&PayloadStatusOther

We can now execute payloads when running with kurtosis 🚀
Disclaimer: We are still getting some execution errors in later blocks that we need to look into (They are all currently passing the block validations)
Closes #51