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: General purpose execution layer requests #8432

Merged
merged 4 commits into from
Apr 16, 2024

Conversation

lightclient
Copy link
Member

This EIP introduces the generic notion of an EL triggered requests. This is intended to encapsulate many of the request types which are being considered in Prague (and beyond). For example, instead of having individual types in the header, body, execution payload, etc. we can have a single generic Request that encompasses several different types.

@github-actions github-actions bot added c-new Creates a brand new proposal s-draft This EIP is a Draft t-core labels Apr 14, 2024
@eth-bot
Copy link
Collaborator

eth-bot commented Apr 14, 2024

✅ All reviewers have approved.

@eth-bot eth-bot added e-consensus Waiting on editor consensus e-review Waiting on editor to review labels Apr 14, 2024
@eth-bot eth-bot changed the title General purpose execution layer requests Add EIP: General purpose exectuion layer requests Apr 14, 2024
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Apr 14, 2024
EIPS/eip-requests.md Outdated Show resolved Hide resolved
EIPS/eip-requests.md Outdated Show resolved Hide resolved
@eth-bot eth-bot changed the title Add EIP: General purpose exectuion layer requests Add EIP: General purpose execution layer requests Apr 15, 2024
@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Apr 15, 2024
Copy link

The commit d8dca5c (as a parent of d7acb6a) contains errors.
Please inspect the Run Summary for details.

@github-actions github-actions bot added the w-ci Waiting on CI to pass label Apr 15, 2024

## Test Cases

TODO
Copy link
Contributor

Choose a reason for hiding this comment

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

If you use HTML-style comments, the linter will make sure you replace them before going to review.

Suggested change
TODO
<!-- TODO -->


## Security Considerations

Needs discussion.
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
Needs discussion.
Needs discussion. <!-- TODO -->

@eth-bot eth-bot enabled auto-merge (squash) April 16, 2024 14:51
Copy link
Collaborator

@eth-bot eth-bot left a comment

Choose a reason for hiding this comment

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

All Reviewers Have Approved; Performing Automatic Merge...

@eth-bot eth-bot merged commit a2c4300 into ethereum:master Apr 16, 2024
10 checks passed
Request = RequestType ++ RequestData
```

Let `Requests` be the list of all `Request` objects in the block in ascending order by type.
Copy link
Member

Choose a reason for hiding this comment

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

ascending meaning by execution order?

Copy link
Member Author

Choose a reason for hiding this comment

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

it's ascending order by type. intra type ordering is not defined in this eip


### Consensus Layer

Each proposal may choose how to extend `ExecutionPayload` to include the new EL request.
Copy link
Member

Choose a reason for hiding this comment

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

why wouldn't CL format just mirror the EL format?

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't really have a preference, it just seems more flexible for the CL to decide how to store the data instead of being forced to put all requests in a requests union type


Each proposal may choose how to extend `ExecutionPayload` to include the new EL request.

A additional processing step is be added to `process_execution_payload` to iterate over and process all requests.
Copy link
Member

Choose a reason for hiding this comment

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

some things we will want to process before process_execution_payload and some things we will want to process after

iirc none of the current 'requests' are actually addressed inside process_execution_payload

given the validity semantics of the spec, this isn't really material to the structure introduced by this EIP

Copy link
Member Author

Choose a reason for hiding this comment

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

okay i will remove this

Copy link
Member Author

Choose a reason for hiding this comment

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


#### Header

Extend the header with a new 32 byte value `RequestsRoot`.

Choose a reason for hiding this comment

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

Can this be expanded to provide the complete structure of the RLP encoding of the header, along the lines of 4788

On a related note, given we're adding this new field, does this imply that 4844 and 4788 are required EIPs for this in the sense that they have both added new header fields that are prior to requestsRoot in the header field order?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-new Creates a brand new proposal e-consensus Waiting on editor consensus e-review Waiting on editor to review s-draft This EIP is a Draft t-core
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants