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 initial electra spec #101

Merged
merged 11 commits into from
Oct 9, 2024
Merged

Conversation

jacobkaufmann
Copy link
Contributor

@jacobkaufmann jacobkaufmann commented May 1, 2024

@jacobkaufmann jacobkaufmann marked this pull request as ready for review May 1, 2024 20:58
Copy link
Member

@ralexstokes ralexstokes left a comment

Choose a reason for hiding this comment

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

looks good! may hold off on merging until after the first iteration of pectra following devnet-0

Copy link
Member

@ralexstokes ralexstokes left a comment

Choose a reason for hiding this comment

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

looks good!

we are blocked on the beacon-apis but this should be good enough to get implementers started

specs/electra/builder.md Outdated Show resolved Hide resolved
specs/electra/builder.md Show resolved Hide resolved
specs/electra/builder.md Outdated Show resolved Hide resolved
Copy link
Member

@ralexstokes ralexstokes left a comment

Choose a reason for hiding this comment

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

updates lgtm, thanks!

Copy link

@lucassaldanha lucassaldanha left a comment

Choose a reason for hiding this comment

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

LGMT

class BuilderBid(Container):
header: ExecutionPayloadHeader
blob_kzg_commitments: List[KZGCommitment, MAX_BLOB_COMMITMENTS_PER_BLOCK]
execution_requests: ExecutionRequests # [New in Electra]
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this field type be switched to bytes If ethereum/execution-apis#591 is accepted?

Choose a reason for hiding this comment

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

I think it makes sense to keep them consistent. So it makes sense to change it. Otherwise we need two decoding implementations on the CL side.

Copy link
Member

@ralexstokes ralexstokes Oct 8, 2024

Choose a reason for hiding this comment

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

I think I would leave this as-is in the spec, this repo leverages the beacon-apis so its most natural to use those definitions

can mirror the Engine API for the Builder API HTTP definition

Copy link
Member

Choose a reason for hiding this comment

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

to @lucassaldanha point, given that this version will be in the beacon-apis, I don't think we are making an additional ask of CLs to deal with this version here

will go ahead and merge this for now to unblock devnet-4, if we decide we want to mirror the Engine API we can address in a future PR

Copy link
Contributor

Choose a reason for hiding this comment

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

Should this field type be switched to bytes

What would be the difference of this compared to using SSZ encoding for the whole BuilderBid? It seems much cleaner to have the option to use JSON (for debugging purposes) or SSZ in transit and is what we do on the beacon-api for most of the time sensitive apis.

If we are concerned about latency, should move to using SSZ on the builder api as proposed in #104

Copy link
Member

Choose a reason for hiding this comment

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

yeah I think that's a nice resolution here! and honestly likely how we should be thinking about it in the Engine API but full SSZ there will take more time

Copy link
Contributor

Choose a reason for hiding this comment

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

but full SSZ there will take more time

yeah I see why this is done on the engine api, but please not on CL side, embedding ssz inside json data is just the worst of both worlds, it's harder to debug issues during development and you still send json around for all others fields + it does not allow streaming the response. Ideally, we only wanna use json for development and stuff like kurtosis testing.

@ralexstokes ralexstokes merged commit 2ee2480 into ethereum:main Oct 9, 2024
3 checks passed
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.

9 participants