Commit 6e59a7b
committed
fix: preserve anchor FULL variant seeding in ProtoArray.initialize
Per bot review feedback on PR: removing the `onExecutionPayload(anchor, ...)`
call alongside the PTC vote override broke block production after restart from
a post-Gloas anchor. `shouldExtendPayload(anchorRoot)` (used in #9209) short-
circuits to false via `!hasPayload()`, so `produceBlockBody`/`prepareNextSlot`
pick `latestExecutionPayloadBid.parentBlockHash` instead of `.blockHash`,
producing bids that fail `processExecutionPayloadBid`'s parent-hash check.
Upstream consensus-specs `c7a0a8527` removes only the PTC vote seeding
(`payload_timeliness_vote={}`, `payload_data_availability_vote={}`) — it does
not remove the FULL-payload semantics of the anchor. The anchor state's
`latestBlockHash` is the executed payload hash, so `onExecutionPayload(anchor)`
still matches the spec's intent of `payload_states = {anchor_root: ...}`.
Keep the PTC vote override removal (the actual subject of this PR); restore
the FULL-variant seeding with a focused comment.
🤖 Generated with AI assistance1 parent b86b6b2 commit 6e59a7b
1 file changed
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
112 | 127 | | |
113 | 128 | | |
114 | 129 | | |
| |||
0 commit comments