Skip to content

Conversation

@0x00101010
Copy link
Contributor

No description provided.

@0x00101010 0x00101010 mentioned this pull request Mar 21, 2025
3 tasks
@0x00101010 0x00101010 marked this pull request as ready for review March 21, 2025 19:41
properties:
block:
$ref: "./block.yaml#/Fulu/BeaconBlock"
cell_proofs:
Copy link
Contributor

Choose a reason for hiding this comment

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

How do people feel about keeping the kzg_proofs field name? Not clear to me how much we gain from this rename, and given the beacon APIs are fork aware, this change doesn't feel necessary.

$ref: "../bellatrix/transactions.yaml#/Bellatrix/Transactions"
withdrawals:
$ref: "../capella/withdrawals.yaml#/Capella/Withdrawals"
proof_version:
Copy link
Member

Choose a reason for hiding this comment

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

is this the only field that actually changes compared to Electra which requires to update BeaconBlockBody? I can't find that in the CL spec

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, this is the only field change, also cc @jtraglia to see if we want to add that to CL spec

Copy link
Member

Choose a reason for hiding this comment

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

also cc @jtraglia to see if we want to add that to CL spec

that would be good otherwise I am not sure how to merge this as beacon-api generally follows the consensus spec, but we can merge this soon, just wanna do another minor release for Electra before that in a few days

Copy link
Member

Choose a reason for hiding this comment

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

Ah sorry just now seeing this. I will make a PR for this.

Copy link
Member

Choose a reason for hiding this comment

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

@0x00101010 why do we have the proof version here?

the proof version byte is just to disambiguate the EL wrapper, i don't see where it leaks into the CL at all

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've removed Fulu BeaconBlock / SignedBeaconBlock / ExecutionPayload, since it does not change, we can reuse the Electra definition

@jtraglia
Copy link
Member

Do we need fulu.ExecutionPayloadCommon and fulu.ExecutionPayloadHeader if there are no changes since Deneb?

@nflaig
Copy link
Member

nflaig commented Mar 27, 2025

Do we need fulu.ExecutionPayloadCommon and fulu.ExecutionPayloadHeader if there are no changes since Deneb?

No we don't need it, I just wanna focus the discussion for now on PeerDAS required changes, so I tried to keep my review minimal for now, can simplify this before merging

Copy link
Contributor

@jimmygchen jimmygchen left a comment

Choose a reason for hiding this comment

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

Also need fulu here:

enum: [phase0, altair, bellatrix, capella, deneb, electra]

There are a few endpoints that lists the consensus versions, perhaps we could update them to use this enum too, to avoid having to update it everywhere?

$ref: './types/electra/consolidation.yaml#/Electra/PendingConsolidation'
Electra.PendingPartialWithdrawal:
$ref: './types/electra/withdrawal.yaml#/Electra/PendingPartialWithdrawal'
Fulu.BlockContents:
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we also need a Fulu.BlobSidecars for the getBlobSidecars endpoint? Could be in a separate PR though.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, since max blob number is not determined, prefer to do it later

Copy link
Contributor

Choose a reason for hiding this comment

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

Blob count is not the only thing that changes - each blob sidecar has a KzgProof field that should be changed to plurals with cell proofs. I reckon we could set a high but realistic blob count for the current PeerDAS, to avoid having to update this endpoint on every BPO hard fork?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

cool, will update it tomorrow with other changes

Copy link
Member

Choose a reason for hiding this comment

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

I think we also need a Fulu.BlobSidecars for the getBlobSidecars endpoint? Could be in a separate PR though.

or we could deprecate the current one and at a new getDataColumnSidecars? I feel like this is something consumers should give feedback on before doing something, afaik, L2 clients use those apis

Copy link
Contributor

Choose a reason for hiding this comment

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

I think we'd probably want getBlobsSidecarV2 for blob consumers (L2s). DataColumnSidecars is unlikely useful to end users - it's a CL-specific structure used for sample distribution and requires extra effort to convert into blobs, which L2 users are unlikely interested in. There could be use cases I'm missing though.

Copy link
Member

Choose a reason for hiding this comment

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

I think we'd probably want getBlobsSidecarV2 for blob consumers (L2s)

how would a CL be able to reconstruct the blob if it's not a supernode? and is there any reason why we need a v2 api, the current api is fork-aware so can change the type if required

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Let's kick off the discussion on getBlobsSidecar/V2 api, let's do it in a separate PR to speed up merging this one

@nflaig
Copy link
Member

nflaig commented Mar 28, 2025

There are a few endpoints that lists the consensus versions, perhaps we could update them to use this enum too, to avoid having to update it everywhere?

definitely worth simplifying this but refactoring seems out of scope of this PR, we can clean up afterwards

for the returned blob sidecars in terms of ordering.
After Fulu, clients may reconstruct the blob sidecars from data columns and return corresponding blobs to users. It is users' responsibility
to ensure that they're connected to a super node (custodies > 64 columns) to guarantee the availability of the blobs.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • >= is more correct here, the node can construct with 50% of all columns.
  • NUMBER_OF_COLUMNS is a config value, so a percentage may be better here.
Suggested change
to ensure that they're connected to a super node (custodies > 64 columns) to guarantee the availability of the blobs.
to ensure that they're connected to a supernode (or a node that custodies >= 50% of all columns) to guarantee the availability of the blobs.

Copy link
Member

Choose a reason for hiding this comment

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

Changes have been moved out of this PR to allow further discussion separately and to move ahead merging this

Copy link
Member

@nflaig nflaig left a comment

Choose a reason for hiding this comment

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

LGTM - thanks @0x00101010 for taking care of this

@nflaig nflaig merged commit 2b1d7b5 into ethereum:master Apr 1, 2025
3 checks passed
@0x00101010 0x00101010 changed the title Add EIP-7594 (PeerDAS) related changes PeerDAS - cell proof computation changes Jul 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants