nimbus-eth2/beacon_chain
Etan Kissling 1bd5819dad
cache head block eligibility for fork choice (#6076)
When there are long periods of non-finality, `nodeIsViableForHead` has
been observed to consume significant time as it repeatedly walks the
non-finalized check graph as part of determining what heads are eligible
for fork choice. Caching the result resolves that.

Overall, it may still be better to prune fork choice more aggressively
when finality advances, to fully avoid the case specced out using the
linear scan. The current implementation is very close to spec, though,
so such a change should not be introduced without thorough testing.

The simple cache should allow significantly better performance on Goerli
while the network is still supported (Mid April).
2024-03-15 22:48:18 +01:00
..
consensus_object_pools automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
el automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
fork_choice cache head block eligibility for fork choice (#6076) 2024-03-15 22:48:18 +01:00
gossip_processing automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
libnimbus_lc automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
networking automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
rpc automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
spec automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
sync automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
validator_client Add Keymanager API graffiti endpoints. (#6054) 2024-03-14 03:44:00 +00:00
validators automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
.editorconfig
.gitignore
beacon_chain_db.nim rename `DepositTreeSnapshot` -> `DepositContractSnapshot` (#6036) 2024-03-07 18:42:52 +01:00
beacon_chain_db_immutable.nim automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
beacon_chain_db_light_client.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
beacon_clock.nim add metric for database checkpoint duration (#5897) 2024-02-19 11:00:11 +01:00
beacon_node.nim align default `syncHorizon` computation logic across networks (#6066) 2024-03-12 21:51:18 +01:00
beacon_node_light_client.nim Revert "initial Electra support skeleton" (#5955) 2024-02-25 19:42:44 +00:00
beacon_node_status.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
bloomfilter.nim Bloom filter acceleration for deposit processing (#5982) 2024-03-07 23:38:24 +00:00
conf.nim Add Keymanager API graffiti endpoints. (#6054) 2024-03-14 03:44:00 +00:00
conf_common.nim Dissect Windows specific code from beacon node. (#5612) 2024-01-13 12:53:53 +02:00
conf_light_client.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
db_limits.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
deposits.nim fix some styleCheck hints (#6016) 2024-03-03 02:04:45 +01:00
era_db.nim Revert "initial Electra support skeleton" (#5955) 2024-02-25 19:42:44 +00:00
extras.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
filepath.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
future_combinators.nim BN+LC+SN: Fix cancellation deprecate warnings. (#5455) 2023-09-22 11:06:27 +00:00
light_client.nim raises for gossip (#5808) 2024-01-22 17:34:54 +01:00
light_client_db.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
nim.cfg chronos: bump (#5684) 2024-01-05 10:08:38 +01:00
nimbus_beacon_node.nim automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
nimbus_beacon_node.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_binary_common.nim Dissect Windows specific code from beacon node. (#5612) 2024-01-13 12:53:53 +02:00
nimbus_light_client.nim raises for gossip (#5808) 2024-01-22 17:34:54 +01:00
nimbus_light_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_signing_node.nim rm Web3Signer Bellatrix block support (#6061) 2024-03-11 22:09:31 +00:00
nimbus_signing_node.nim.cfg
nimbus_validator_client.nim Add Keymanager API graffiti endpoints. (#6054) 2024-03-14 03:44:00 +00:00
nimbus_validator_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
sszdump.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
statediff.nim Shared validator pubkey (#5883) 2024-02-21 20:06:19 +01:00
statusbar.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
trusted_node_sync.nim automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
version.nim Version v24.2.2 2024-02-27 03:24:30 +02:00
wallets.nim add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00
winservice.nim add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00