nimbus-eth2/beacon_chain
Jacek Sieka 22ddf74752 Upgrade database schema
The `kvstore` design we're using now turns out to not be the best way to
use `sqlite` - in particular, there are some significant benefits to
using rowid in certain situations and to keep data in separate tables.

With this branch, there are massive improvements in startup time
(seconds instead of minutes) and state/block storage and pruning times
(milliseconds instead of seconds) - these improvements can in particular
be seen on slow drives and translate directly into better attestation
performance.

* update kvstore to new keyspace design
* remove `DirStoreRef` and the hidden `--state-db-kind` option - this
was an experiment to store large blobs in files, but with the new
kvstore, there's no compelling reason to do so
* remove `DbMap` - unused and would need updating for new keyspace
design
* introduce separate tables for each data type (blocks, states etc)
* remove "WITHOUT ROWID" pessimization for tables with large blobs
* close DbSeq statements explicitly (and earlier)
* store beacon block summaries in separate table, without SSZ
compression and load them all with single query on startup
* stop storing backwards compat full states
* mark genesis beacon block as trusted
* avoid faststreams when loading SSZ data
* remove `DisagreementBehavior` (unused)
2021-05-14 20:05:23 +03:00
..
consensus_object_pools Upgrade database schema 2021-05-14 20:05:23 +03:00
eth1 Upgrade database schema 2021-05-14 20:05:23 +03:00
fork_choice remove attestation/aggregate queue (#2519) 2021-04-26 22:39:44 +02:00
gossip_processing Perform attestation check before broadcast (#2550) 2021-05-10 09:13:36 +02:00
networking Perform attestation check before broadcast (#2550) 2021-05-10 09:13:36 +02:00
rpc fix subnet logic (#2555) 2021-05-11 22:03:40 +02:00
spec Upgrade database schema 2021-05-14 20:05:23 +03:00
ssz Upgrade database schema 2021-05-14 20:05:23 +03:00
sync move ENRForkID into `spec` (#2538) 2021-05-04 17:28:48 +02:00
validators Upgrade database schema 2021-05-14 20:05:23 +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 Upgrade database schema 2021-05-14 20:05:23 +03:00
beacon_chain_db_immutable.nim json cleanups (#2456) 2021-03-26 15:11:06 +01:00
beacon_clock.nim Nim-1.2.12 2021-04-19 10:53:58 +03:00
beacon_node_common.nim Add a POST /api/nimbus/v1/graffiti API 2021-04-09 21:42:13 +03:00
beacon_node_status.nim EH cleanup (#2455) 2021-03-26 07:52:01 +01:00
beacon_node_types.nim fix subnet logic (#2555) 2021-05-11 22:03:40 +02:00
conf.nim Upgrade database schema 2021-05-14 20:05:23 +03:00
extras.nim EH cleanup (#2455) 2021-03-26 07:52:01 +01:00
filepath.nim EH cleanup (#2455) 2021-03-26 07:52:01 +01:00
interop.nim remove attestation/aggregate queue (#2519) 2021-04-26 22:39:44 +02:00
nimbus_beacon_node.nim Upgrade database schema 2021-05-14 20:05:23 +03:00
nimbus_beacon_node.nim.cfg Drop UseDiscv51 flag and only support discovery v5.1 2020-11-14 19:12:30 +02:00
nimbus_binary_common.nim EH cleanup (#2455) 2021-03-26 07:52:01 +01:00
nimbus_signing_process.nim remove attestation/aggregate queue (#2519) 2021-04-26 22:39:44 +02:00
nimbus_validator_client.nim Perform attestation check before broadcast (#2550) 2021-05-10 09:13:36 +02:00
nimbus_validator_client.nim.cfg Rename binaries; Mimic the original repo layout in the distribution 2020-11-09 11:38:52 +02:00
ssz.nim Move SSZ, deposit_contracts & eth1_monitor [reorg files 3/5] (#2371) 2021-03-03 07:23:05 +01:00
statediff.nim Reset cached indices when resetting cache on SSZ read (#2480) 2021-04-08 13:11:04 +03:00
statusbar.nim EH cleanup (#2455) 2021-03-26 07:52:01 +01:00
version.nim v1.2.2 2021-05-03 11:13:12 +03:00