Skip to content

Commit 027fc72

Browse files
authored
Use should_build_on_full for bid parent block hash (#5310)
1 parent eb6b55b commit 027fc72

1 file changed

Lines changed: 10 additions & 11 deletions

File tree

specs/gloas/validator.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,9 @@ def get_proposer_preferences_signature(
182182

183183
#### Constructing the `BeaconBlockBody`
184184

185+
Let `head = get_head(store)` be the parent block the proposer is building on,
186+
from which `state` was derived.
187+
185188
##### Signed execution payload bid
186189

187190
To obtain `signed_execution_payload_bid`, a block proposer building a block on
@@ -202,7 +205,7 @@ top of a `state` MUST take the following actions in order to construct the
202205
- The `bid.slot` is for the proposal block slot.
203206
- The `bid.parent_block_hash` equals
204207
`state.latest_execution_payload_bid.block_hash` if
205-
`should_extend_payload(store, block.parent_root)` is true, otherwise
208+
`should_build_on_full(store, head)` is true, otherwise
206209
`state.latest_execution_payload_bid.parent_block_hash`.
207210
- The `bid.parent_block_root` equals the current block's `parent_root`.
208211
- Select one bid and set
@@ -232,8 +235,7 @@ construct the `payload_attestations` field in `BeaconBlockBody`:
232235
##### Parent execution requests
233236

234237
The `parent_execution_requests` field contains the execution requests from the
235-
parent's execution payload. Let `head = get_head(store)`. The proposer
236-
constructs this field as follows:
238+
parent's execution payload. The proposer constructs this field as follows:
237239

238240
- If the parent block is pre-Gloas (first Gloas block), set
239241
`parent_execution_requests` to an empty `ExecutionRequests()`.
@@ -245,14 +247,11 @@ constructs this field as follows:
245247

246248
##### ExecutionPayload
247249

248-
*Note*: `prepare_execution_payload` is modified in Gloas to take `store` and
249-
`head` as additional parameters. `head` is the return value of `get_head(store)`
250-
and must correspond to the parent that `state` was derived from. It consults
251-
`should_build_on_full(store, head)` to decide whether to build on the parent's
252-
full payload or its empty variant, selecting both the withdrawals source and the
253-
execution head for the new payload. When building on a full parent,
254-
`apply_parent_execution_payload` is called so that withdrawals are computed
255-
against the post-processing state.
250+
*Note*: `prepare_execution_payload` is modified to build on the parent's full
251+
payload or its empty variant, as decided by `should_build_on_full(store, head)`,
252+
which determines the withdrawals source and the execution head for the new
253+
payload. When building on a full parent, `apply_parent_execution_payload` is
254+
called so that withdrawals are computed against the post-processing state.
256255

257256
```python
258257
def prepare_execution_payload(

0 commit comments

Comments
 (0)