nimbus-eth2/beacon_chain
Jacek Sieka 7501f10587
60% state replay speedup (#4434)
* 60% state replay speedup

* don't use HashList for epoch participation - in addition to the code
currently clearing the caches several times redundantly, clearing has to
be done each block nullifying the benefit (35%)
* introduce active balance cache - computing it is slow due to cache
unfriendliness in the random access pattern and bounds checking and we
do it for every block - this cache follows the same update pattern as
the active validator index cache (20%)
* avoid recomputing base reward several times per attestation (5%)

Applying 1024 blocks goes from 20s to ~8s on my laptop - these kinds of
requests happen on historical REST queries but also whenever there's a
reorg.

* fix test and diffs
2022-12-19 14:01:49 +02:00
..
consensus_object_pools 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
eth1 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
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 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
networking 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
rpc 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
spec 60% state replay speedup (#4434) 2022-12-19 14:01:49 +02:00
sync 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
validator_client fix EIP4844 withBlck (#4411) 2022-12-14 18:30:56 +01:00
validators 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
.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 fix capella+ summary loading (#4433) 2022-12-16 13:11:08 +01:00
beacon_chain_db_immutable.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_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 Support for obtaining deposit snapshots during trustedNodeSync (#4303) 2022-12-07 12:24:51 +02: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 fix EIP4844 withBlck (#4411) 2022-12-14 18:30:56 +01:00
extras.nim api: add skip_randao_verification for produceBlockV2 (#3837) 2022-09-21 09:38:08 +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 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
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 Support for obtaining deposit snapshots during trustedNodeSync (#4303) 2022-12-07 12:24:51 +02: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 fix EIP4844 withBlck (#4411) 2022-12-14 18:30:56 +01:00
version.nim Version 22.11.1 2022-12-12 20:18:57 +02:00
wallets.nim compatibility with Nim 1.4+ (#3888) 2022-07-29 10:53:42 +00:00