Skip to content
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

Add EIP-7594 (PeerDAS) related changes #630

Open
wants to merge 13 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

#### Request

* method: `engine_getBlobsV2`
Copy link
Contributor

Choose a reason for hiding this comment

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

i am not sure what the relevance of this method is in peerdas unless this is meant to provide support for distributed block building https://notes.ethereum.org/@dankrad/BkJMU8d0R in which case the request/response format will fully change

Copy link

Choose a reason for hiding this comment

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

Why would it change?

Copy link
Contributor

@g11tech g11tech Mar 11, 2025

Choose a reason for hiding this comment

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

if EL dosen't has all the blobs this is not useful or may be am I missing something? in distributed block building scenario the mempools will only sync their custody columns and there won't be a blob to return

so this api would essentially change towards fetching the column custodies from the EL

Copy link

Choose a reason for hiding this comment

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

Those are ideas for the future, we are not going to be sharding the mempool in Fusaka.

Copy link
Contributor

Choose a reason for hiding this comment

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

right, then this will be useful only if we get all blobs from the EL if my understanding is correct?

Copy link
Author

Choose a reason for hiding this comment

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

That is correct, and it could be used to do distributed blob publishing, happen on nodes who have all the blobs available locally

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

Comment on lines +13 to +14
- [BlobsBundleV1](#blobsbundlev1)
- [BlobAndProofV1](#blobandproofv1)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- [BlobsBundleV1](#blobsbundlev1)
- [BlobAndProofV1](#blobandproofv1)
- [BlobsBundleV2](#blobsbundlev2)
- [BlobAndProofV2](#blobandproofv2)

Copy link
Author

@0x00101010 0x00101010 Mar 21, 2025

Choose a reason for hiding this comment

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

This is where the latest change is, the idea is not to bump the version of BlobsBundle and BlobAndProof message, just directly adding a new field to it, it could help simplify implementation quite a bit, and also more adhering to idiomatic protobuf conventions.

I'm working on related beacon-APIs, builder-specs changes along with example PR (both on prysm / geth) side to showcase this.

Let me know if you think otherwise (we should do it like before with new message version)

Copy link
Contributor

Choose a reason for hiding this comment

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

This is where the latest change is, the idea is not to bump the version of BlobsBundle and BlobAndProof message, just directly adding a new field to it, it could help simplify implementation quite a bit, and also more adhering to idiomatic protobuf conventions.

I see, it's not clear to me that this makes anything simpler, it seems like bumping a version is trivial, do you mind expanding on why this would be simpler? Is there an implementation that's made complex as a result of this?

Copy link
Contributor

Choose a reason for hiding this comment

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

ah I see, this suggests not even adding a new method

engine_getPayloadV4

This might be fine then

Copy link
Author

Choose a reason for hiding this comment

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

Yeah, not only does this simplify EL side, also on CL side it avoids quite a lot of new APIs catered just to a new BlobsBundle / BlobAndProof V2 with an additional field, same applies to builder side as well

Copy link
Contributor

Choose a reason for hiding this comment

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

to be honest i don't see much gain on both EL and CL side by avoiding version bump, infact it add for easy validation and typestrictness with fork rather than now having both proof and cellProofs as optionals

i would recommend the version bump

@0x00101010 0x00101010 changed the title Define EIP-7594 related changes Add EIP-7594 (PeerDAS) related changes Mar 21, 2025
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.

8 participants