-
Notifications
You must be signed in to change notification settings - Fork 943
Description
Description
We presently prune the execution payload of the split block itself, while retaining newer payloads. This creates some difficult-to-reason about edge cases, e.g. when we checkpoint sync we expect to be able to load the full block for the head, which is equal to the split. We don't want to prune this payload, and need it to be available when we try to fetch it from the DB. See: #8417 (comment)
To make this less confusing, we could avoid ever pruning the payload of the split block. Now that we have the split.block_root available, this should be straight-forward. We can modify try_prune_execution_payloads with the new behaviour and add new tests (or a codified invariant) to check that the split payload isn't pruned in both aligned and unaligned cases.