Skip to content

Investigate not pruning the split block's payload #8431

@michaelsproul

Description

@michaelsproul

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions