Closed mcdee closed 1 year ago
They're pruned once the validator's exit_epoch
is finalized:
This validator's exit epoch is still in the future (196264
), so it will be pruned once that epoch arrives next week.
The reason we prune like this (as the code comment says) is for simplicity. The ideal pruning criteria would be when the block that the exit is included in is finalized, but that's not readily available from the BeaconState
– we would need to iterate the chain history, which is slow(er).
Having a few thousand of these in memory isn't an issue, they're small, and block packing will quickly skip over them when it sees they are no longer relevant to include at the head of the chain.
It does make it hard to know which exits have been included on-chain (albeit not finalized), which makes it tricky when checking pool sizes over time and across instances, but understand the rationale here so closing the issue.
Description
Node does not clear voluntary exits from pool once the validator is exiting.
This results in many exits remaining in the pool:
Version
Present Behaviour
Lighthouse appears to keep voluntary exits in its pool even after they have been included on-chain.
Expected Behaviour
The exit should be removed from the pool.
Steps to resolve