Skip to content

Provide IL transactions in forkchoiceUpdatedV5 calls - #10071

Open
conache wants to merge 8 commits into
sigp:unstablefrom
conache:focil-block-production-provide-il
Open

conache wants to merge 8 commits into
sigp:unstablefrom
conache:focil-block-production-provide-il

Conversation

@conache

@conache conache commented Sep 17, 2026

Copy link
Copy Markdown

Issue Addressed

This PR is part of the FOCIL implementation. It finishes the proposer side wiring of engine_forkchoiceUpdatedV5 by populating the inclusion_list_transactions field in PayloadAttributesV5 (per spec).

Proposed Changes

  • Provide inclusion_list_transactions required in the PayloadAttributesV5 built in the block production code paths:
    • prepare_beacon_proposer, the warm-up fcU call sent before the node's proposal slot
    • prepare_execution_payload in the block production
  • Adds helper over the BeaconChain::get_inclusion_list_transactions for fetching inclusion lists for the proposer code paths (for slot. - 1, both timely and untimely transactions, as the spec requires). The helper returns an empty transactions list in case of error, so a store read failure never affects block production
  • Add tests for both codepaths (around the fork boundary) and for the newly added helper

@@ -6792,8 +6792,14 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
};

let inclusion_list_transactions = if prepare_slot_fork.heze_enabled() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

looks like this branch gets skipped when we already have the attributes cached for (prepare_slot, head_root, payload_status). fork choice calls prepare_beacon_proposer pretty early in the slot, so in practice the entry gets created before the ILs arrive and then the fcU keeps sending that same stale list for the rest of the slot.

block production reads the store again, so the list itself is fine. but I think we'd still want to handle the cache case here, or maybe follow it up separately?

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.

2 participants