-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Remove discarded block bodies and states from the database. #11912
Description
Block header and bodies currently account for 90% of the database size on disk. By default the node keeps all headers and bodies in the database, even ones that are not in the finalized chain. There no point in keeping old blocks that are not in the finalized chain, as they are of no interest to anyone. Such blocks should be removed by default, potentially saving a lot of disk space. An option to keep all blocks should be available (perhaps an extension of --keep-blocks).
As it is with state pruning, the node should discard non-finalized blocks after some delay, to allow for reversion of finality.
State pruning in archive mode also keeps states for such blocks. There should be a separate pruning mode that preserves full state history for canonical chain only.