lighthouse/beacon_node/beacon_chain
Michael Sproul 99d2c33387 Avoid looking up pre-finalization blocks (#2909)
## Issue Addressed

This PR fixes the unnecessary `WARN Single block lookup failed` messages described here:

https://github.com/sigp/lighthouse/pull/2866#issuecomment-1008442640

## Proposed Changes

Add a new cache to the `BeaconChain` that tracks the block roots of blocks from before finalization. These could be blocks from the canonical chain (which might need to be read from disk), or old pre-finalization blocks that have been forked out.

The cache also stores a set of block roots for in-progress single block lookups, which duplicates some of the information from sync's `single_block_lookups` hashmap:

a836e180f9/beacon_node/network/src/sync/manager.rs (L192-L196)

On a live node you can confirm that the cache is working by grepping logs for the message: `Rejected attestation to finalized block`.
2022-01-27 22:58:32 +00:00
..
src Avoid looking up pre-finalization blocks (#2909) 2022-01-27 22:58:32 +00:00
tests Avoid looking up pre-finalization blocks (#2909) 2022-01-27 22:58:32 +00:00
Cargo.toml Update to superstruct v0.4.1 (#2886) 2022-01-06 03:14:58 +00:00