Skip to content

execution-apis: Add EIP-7594 (PeerDAS) related changes #630

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

Open
wants to merge 24 commits into
base: main
Choose a base branch
from

Conversation

0x00101010
Copy link

@0x00101010 0x00101010 commented Feb 19, 2025

Summary

Introduces updates to rpc and engine API definitions for EIP-7594, changes defined in ethereum/EIPs#9378

  • Adjusts schemas for blob transactions (blob.yaml) and references to ensure consistency across all updated files.
  • Added osaka.md to describe api changes

Notes for reviewers

This PR introduces backward incompatible changes to engine_getPayloadV4, that returns new BlobsBundleV2 with cell proofs instead of blob proofs

Copy link

@ImTei ImTei left a comment

Choose a reason for hiding this comment

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

I’ve added a few suggestions to slightly improve readability and clarity—mostly minor points for precision. None of them are strictly necessary, so please feel free to accept or ignore them based on your preference!

0x00101010 and others added 2 commits March 4, 2025 11:12
Copy link
Contributor

@Rjected Rjected left a comment

Choose a reason for hiding this comment

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

have a question / request for clarification on the eth_sendRawTransaction semantics

matthewkeil pushed a commit to ChainSafe/lodestar that referenced this pull request Apr 14, 2025
**Motivation**

add `engine_getBlobsV2` to the execution API in preparation for
implementation of [distributed blob
publishing](https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/p2p-interface.md#distributed-blob-publishing-using-blobs-retrieved-from-local-execution-layer-client)

@dguenther and I wanted to get early feedback on the API change before
moving forward with the rest of the implementation

**Description**

upcoming spec changes will add `engine_getBlobsV2` to the execution API
to fetch blobs and cell proofs from the execution layer
(ethereum/execution-apis#630)

* add `engine_getBlobsV2` to execution API
* add type definition for `BlobAndProofV2`

**Not included**

We'll follow up with additional PR(s) for these as we move forward with
distributed blob publishing:

* fetch blobs from the EL in two places: on first seen block input
gossip and on unknown blocks during syncing
* reconstruct blobs from cell proofs
* publish data column sidecars on subscribed topics after

Relates to #7638

---------

Co-authored-by: Derek Guenther <[email protected]>
@0x00101010 0x00101010 changed the title Add EIP-7594 (PeerDAS) related changes execution-apis: Add EIP-7594 (PeerDAS) related changes Apr 16, 2025

Refer to the specification for [`engine_getBlobsV1`](./cancun.md#engine_getblobsv1) with changes of the following:

1. Given an array of blob versioned hashes client software **MUST** respond with an array of `BlobAndProofV2` objects with matching versioned hashes, respecting the order of versioned hashes in the input array.
Copy link
Contributor

Choose a reason for hiding this comment

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

Should there be any information about how old transactions are handled by this method?

Copy link
Author

Choose a reason for hiding this comment

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

It is specified here: https://github.com/ethereum/execution-apis/pull/630/files#diff-3a9e53de4a77d1ceec28870b24b0ff6e8f89437ae2d439aab70a75990060736dR35-R40

The idea is that old txs should've already been converted to new format or dropped already (which won't be included in the block)


Engine API changes introduced in Osaka.

This specification is based on and extends [Engine API - Prague](./prague.md) specification.
Copy link
Contributor

Choose a reason for hiding this comment

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

When new versions of methods are introduced there is usually a statement on how to limit the scope of the previous versions. I think this doc should at least add modification to engine_getPayloadV4 while engine_getBlobsV2 is a bit more tricky in that regard, see https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#update-the-methods-of-previous-forks.

Copy link
Author

Choose a reason for hiding this comment

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

Great callout, added update-the-methods-of-previous-forks section for engine_getblobsv1.

As for getPayloadV4, previous section already specifies the validation should reject anything that's older than Prague, so it covers Osaka.

@0x00101010 0x00101010 requested a review from mkalinin April 17, 2025 21:52
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.