lighthouse/consensus
Michael Sproul b90c0c3fb1 Make re-org strat more cautious and add more config (#4151)
## Proposed Changes

This change attempts to prevent failed re-orgs by:

1. Lowering the re-org cutoff from 2s to 1s. This is informed by a failed re-org attempted by @yorickdowne's node. The failed block was requested in the 1.5-2s window due to a Vouch failure, and failed to propagate to the majority of the network before the attestation deadline at 4s.
2. Allow users to adjust their re-org cutoff depending on observed network conditions and their risk profile. The static 2 second cutoff was too rigid.
3. Add a `--proposer-reorg-disallowed-offsets` flag which can be used to prohibit reorgs at certain slots. This is intended to help workaround an issue whereby reorging blocks at slot 1 are currently taking ~1.6s to propagate on gossip rather than ~500ms. This is suspected to be due to a cache miss in current versions of Prysm, which should be fixed in their next release.

## Additional Info

I'm of two minds about removing the `shuffling_stable` check which checks for blocks at slot 0 in the epoch. If we removed it users would be able to configure Lighthouse to try reorging at slot 0, which likely wouldn't work very well due to interactions with the proposer index cache. I think we could leave it for now and revisit it later.
2023-04-13 07:05:01 +00:00
..
cached_tree_hash Merge remote-tracking branch 'origin/unstable' into capella 2023-01-12 16:22:00 +11:00
fork_choice Make re-org strat more cautious and add more config (#4151) 2023-04-13 07:05:01 +00:00
int_to_bytes Update to Rust 1.59 and 2021 edition (#3038) 2022-02-25 00:10:17 +00:00
merkle_proof Verify execution block hashes during finalized sync (#3794) 2023-01-09 03:11:59 +00:00
proto_array Make re-org strat more cautious and add more config (#4151) 2023-04-13 07:05:01 +00:00
safe_arith Inline safe_arith methods (#3229) 2022-05-31 06:09:12 +00:00
serde_utils Tweaks to reward APIs (#3957) 2023-02-10 06:19:42 +00:00
ssz Merge remote-tracking branch 'origin/unstable' into capella 2023-01-12 16:22:00 +11:00
ssz_derive Appease Clippy 1.68 and refactor http_api (#4068) 2023-03-13 01:40:03 +00:00
ssz_types Suggestions for Capella execution_layer (#3983) 2023-02-17 11:58:33 +11:00
state_processing Clean capella (#4019) 2023-03-01 03:19:02 +00:00
swap_or_not_shuffle Verify execution block hashes during finalized sync (#3794) 2023-01-09 03:11:59 +00:00
tree_hash Merge remote-tracking branch 'origin/unstable' into capella 2023-01-12 16:22:00 +11:00
tree_hash_derive Appease Clippy 1.68 and refactor http_api (#4068) 2023-03-13 01:40:03 +00:00
types Remove the unused ExecutionOptimisticForkVersionedResponse type (#4160) 2023-04-12 01:48:21 +00:00