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

Update EIP-7805: expand on EL changes #9381

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

Marchhill
Copy link
Contributor

@Marchhill Marchhill commented Feb 19, 2025

  • Add Engine API changes from Add initial FOCIL spec execution-apis#609
  • Clarify IL building process is unspecified in EL section
  • Correct statements about block being invalid if IL not satisfied
  • Clarify some details of EL / engine API changes

@github-actions github-actions bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-core labels Feb 19, 2025
@eth-bot
Copy link
Collaborator

eth-bot commented Feb 19, 2025

File EIPS/eip-7805.md

Requires 1 more reviewers from @soispoke

@eth-bot eth-bot added the a-review Waiting on author to review label Feb 19, 2025
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Feb 19, 2025
EIPS/eip-7805.md Outdated

#### IL Building

The IL should be built using the following rules:

Choose a reason for hiding this comment

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

Actually we don't impose IL ordering rules. Some clients may prefer to pick transactions based on priority fee while others may choose different heuristic algorithms. We expect more diverse approaches on IL construction would foster censorship resistance.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Makes sense, I moved the previous section on IL building to here and added a bit about it being optional. This section seems like a more suitable place for it

Marchhill and others added 2 commits February 20, 2025 10:40
Co-authored-by: JihoonSong <jihoonsong@users.noreply.github.com>
@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Feb 20, 2025
@Marchhill Marchhill marked this pull request as ready for review February 20, 2025 10:53
@Marchhill Marchhill requested a review from eth-bot as a code owner February 20, 2025 10:53
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Feb 20, 2025
@Marchhill Marchhill marked this pull request as draft February 20, 2025 11:42
EIPS/eip-7805.md Outdated

#### IL Building

By default, ILs are built by selecting raw transactions from the public mempool, ordered by priority fees, up to the IL’s maximum size in bytes of `MAX_BYTES_PER_INCLUSION_LIST = 8 KiB` per IL. Additional rules can be optionally applied to maximize censorship resistance, such as prioritizing valid transactions that have been pending in the mempool the longest. Implementations are free to choose their own ordering rules.

Choose a reason for hiding this comment

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

There is no default rule. While ordering and selecting transactions by priority fee is probably the most anticipated strategy, it should remain as optional, too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was moved from elsewhere in the EIP but maybe should be changed

Choose a reason for hiding this comment

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

Where did you get it from?

Choose a reason for hiding this comment

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

Regarding adding this to the EIP, I want to ask other people's opinions. cc @soispoke @terencechain

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link

@jihoonsong jihoonsong Feb 21, 2025

Choose a reason for hiding this comment

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

Ah, right, my bad. I prefer to keep it as is and have only engine API changes. I think that gives us better readability.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

imo it's nice to have it here so the EL changes are contained in this section, easier to know what needs to be implemented. You think having an extra section here is bad for readability?

Choose a reason for hiding this comment

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

From the big picture perspective, yes. The original version provides a guidance on how IL committee members could construct their ILs when a reader reads the role of IL committee member. This change removes it and hence brings ambiguity compared to before.

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 made a change to mention IL building in that earlier section but then expand on it in the EL section, wdyt?

Choose a reason for hiding this comment

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

I've left comments on nit and suggestion. I wanted to focus a little bit more on delivering possible strategies.

@github-actions github-actions bot removed the w-ci Waiting on CI to pass label Feb 22, 2025
@Marchhill Marchhill marked this pull request as ready for review February 22, 2025 14:46
@github-actions github-actions bot added the w-ci Waiting on CI to pass label Feb 22, 2025
Copy link

The commit 3053382 (as a parent of 0793ca2) contains errors.
Please inspect the Run Summary for details.

- Modify `engine_newPayload` endpoint to include a parameter for transactions in ILs determined by the proposer
- Modify `engine_forkchoiceUpdated` endpoint to include a field in the payload attributes for transactions in ILs determined by the proposer
- Add `engine_getInclusionListV1` endpoint to retrieve an IL from the `ExecutionEngine`.
- Add `engine_updatePayloadWithInclusionListV1` endpoint to update a payload with the IL that should be used to build the block. This takes as an argument an 8 byte `payloadId` of the ongoing payload build process, along with the IL itself.

Choose a reason for hiding this comment

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

Suggested change
- Add `engine_updatePayloadWithInclusionListV1` endpoint to update a payload with the IL that should be used to build the block. This takes as an argument an 8 byte `payloadId` of the ongoing payload build process, along with the IL itself.
- Add `engine_updatePayloadWithInclusionListV1` endpoint to update a payload with the IL that should be used to build the block. This takes as an argument an 8 bytes `payloadId` of the ongoing payload build process, along with the IL itself.


#### IL Building

The rules for building ILs are left up to the implementers discretion. Possible strategies include randomly choosing from the transaction pool, ordering by priority fee, time spent pending in the mempool, etc.

Choose a reason for hiding this comment

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

Suggested change
The rules for building ILs are left up to the implementers discretion. Possible strategies include randomly choosing from the transaction pool, ordering by priority fee, time spent pending in the mempool, etc.
The rules for building ILs are left to the discretion of implementers. For instance, they may select raw transactions from the public mempool in various ways such as at random, by priority fee, or based on how long they have been pending. This process continues until the IL reaches its maximum size of `MAX_BYTES_PER_INCLUSION_LIST = 8 KiB`.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-review Waiting on author to review c-update Modifies an existing proposal s-draft This EIP is a Draft t-core w-ci Waiting on CI to pass
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants