This is an implementation of a slasher that lives inside the BN and can be enabled via `lighthouse bn --slasher`. Features included in this PR: - [x] Detection of attester slashing conditions (double votes, surrounds existing, surrounded by existing) - [x] Integration into Lighthouse's attestation verification flow - [x] Detection of proposer slashing conditions - [x] Extraction of attestations from blocks as they are verified - [x] Compression of chunks - [x] Configurable history length - [x] Pruning of old attestations and blocks - [x] More tests Future work: * Focus on a slice of history separate from the most recent N epochs (e.g. epochs `current - K` to `current - M`) * Run out-of-process * Ingest attestations from the chain without a resync Design notes are here https://hackmd.io/@sproul/HJSEklmPL |
||
|---|---|---|
| .. | ||
| account_utils | ||
| clap_utils | ||
| compare_fields | ||
| compare_fields_derive | ||
| deposit_contract | ||
| directory | ||
| eth2 | ||
| eth2_config | ||
| eth2_interop_keypairs | ||
| eth2_testnet_config | ||
| eth2_wallet_manager | ||
| hashset_delay | ||
| lighthouse_metrics | ||
| lighthouse_version | ||
| logging | ||
| lru_cache | ||
| remote_signer_consumer | ||
| rest_types | ||
| slot_clock | ||
| task_executor | ||
| test_random_derive | ||
| validator_dir | ||
| warp_utils | ||
| README.md | ||
eth2
Common crates containing eth2-specific logic.