nimbus-eth2/beacon_chain
Jacek Sieka 0ba9fc4ede
History pruning (fixes #4419) (#4445)
Introduce (optional) pruning of historical data - a pruned node will
continue to answer queries for historical data up to
`MIN_EPOCHS_FOR_BLOCK_REQUESTS` epochs, or roughly 5 months, capping
typical database usage at around 60-70gb.

To enable pruning, add `--history=prune` to the command line - on the
first start, old data will be cleared (which may take a while) - after
that, data is pruned continuously.

When pruning an existing database, the database will not shrink -
instead, the freed space is recycled as the node continues to run - to
free up space, perform a trusted node sync with a fresh database.

When switching on archive mode in a pruned node, history is retained
from that point onwards.

History pruning is scheduled to be enabled by default in a future
release.

In this PR, `minimal` mode from #4419 is not implemented meaning
retention periods for states and blocks are always the same - depending
on user demand, a future PR may implement `minimal` as well.
2023-01-07 10:02:15 +00:00
..
consensus_object_pools History pruning (fixes #4419) (#4445) 2023-01-07 10:02:15 +00:00
eth1 bump nim-web3 for correct getPayloadV2 response signature (#4471) 2023-01-06 21:06:45 +00:00
fork_choice update EF consensus spec URLs from v1.3.0-alpha.1 to v1.3.0-alpha.2 (#4432) 2022-12-15 12:15:12 +00:00
gossip_processing spec ref URL & copyright year updates (#4467) 2023-01-06 16:28:46 +00:00
networking eip4844 gossip (#4444) 2023-01-04 12:34:15 +00:00
rpc fix `produceBlockV2` call for Capella (#4443) 2022-12-21 10:35:56 +00:00
spec History pruning (fixes #4419) (#4445) 2023-01-07 10:02:15 +00:00
sync spec ref URL & copyright year updates (#4467) 2023-01-06 16:28:46 +00:00
validator_client fix EIP4844 withBlck (#4411) 2022-12-14 18:30:56 +01:00
validators capella forkchoiceUpdated support (#4462) 2023-01-06 22:01:10 +01:00
.editorconfig Add .editorconfig file and remove trailing newlines 2021-09-14 12:12:49 +03:00
.gitignore Rename binaries; Mimic the original repo layout in the distribution 2020-11-09 11:38:52 +02:00
beacon_chain_db.nim History pruning (fixes #4419) (#4445) 2023-01-07 10:02:15 +00:00
beacon_chain_db_immutable.nim capella validator withdrawal credentials aren't immutable (#4455) 2023-01-03 20:04:59 +01:00
beacon_chain_db_light_client.nim persist LC sync progress across restarts (#4371) 2022-11-30 04:45:03 +01:00
beacon_clock.nim update EF consensus spec URLs from v1.3.0-alpha.1 to v1.3.0-alpha.2 (#4432) 2022-12-15 12:15:12 +00:00
beacon_node.nim implement /eth/v1/validator/register_validator (#4115) 2022-09-13 14:52:26 +03:00
beacon_node_light_client.nim fix EIP4844 withBlck (#4411) 2022-12-14 18:30:56 +01:00
beacon_node_status.nim compatibility with Nim 1.4+ (#3888) 2022-07-29 10:53:42 +00:00
conf.nim History pruning (fixes #4419) (#4445) 2023-01-07 10:02:15 +00:00
conf_light_client.nim persist LC sync progress across restarts (#4371) 2022-11-30 04:45:03 +01:00
db_limits.nim persist LC sync progress across restarts (#4371) 2022-11-30 04:45:03 +01:00
deposits.nim nicer error message for failed backfill (#4188) 2022-09-29 23:55:18 +03:00
era_db.nim Allow reindexing to start from an arbitrary state (#4437) 2023-01-03 20:37:09 +01:00
extras.nim Implement skip_randao_verification for blinded blocks (#4435) 2022-12-19 15:11:12 +02:00
filepath.nim Keymanager API for the validator client (#3976) 2022-08-19 13:30:07 +03:00
interop.nim compatibility with Nim 1.4+ (#3888) 2022-07-29 10:53:42 +00:00
light_client.nim add hooks for observing LC progress (#4401) 2022-12-08 16:24:16 +00:00
light_client_db.nim persist LC sync progress across restarts (#4371) 2022-11-30 04:45:03 +01:00
nim.cfg enable `styleCheck:usages` (#3573) 2022-04-08 16:22:49 +00:00
nimbus_beacon_node.nim History pruning (fixes #4419) (#4445) 2023-01-07 10:02:15 +00:00
nimbus_beacon_node.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_binary_common.nim unify bn/vc doppelganger detection (#4398) 2022-12-09 17:05:55 +01:00
nimbus_light_client.nim Migrating the deposit contract snapshot can no longer fail on start-up (#4438) 2022-12-19 18:19:48 +01:00
nimbus_light_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_signing_node.nim unify bn/vc doppelganger detection (#4398) 2022-12-09 17:05:55 +01:00
nimbus_signing_node.nim.cfg Revert writing backfill root to database (#3215) 2021-12-21 11:40:14 +01:00
nimbus_validator_client.nim unify bn/vc doppelganger detection (#4398) 2022-12-09 17:05:55 +01:00
nimbus_validator_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
sszdump.nim compatibility with Nim 1.4+ (#3888) 2022-07-29 10:53:42 +00:00
statediff.nim 60% state replay speedup (#4434) 2022-12-19 14:01:49 +02:00
statusbar.nim eip4844 light client tests; avoid case object out-of-bound array reads (#4404) 2022-12-08 17:21:53 +01:00
trusted_node_sync.nim Backfill only up to MIN_EPOCHS_FOR_BLOCK_REQUESTS blocks (#4421) 2022-12-23 08:42:55 +01:00
version.nim Version 22.12.0 2022-12-21 10:50:13 +02:00
wallets.nim compatibility with Nim 1.4+ (#3888) 2022-07-29 10:53:42 +00:00