5828ff1204
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
47 lines
1.4 KiB
TOML
47 lines
1.4 KiB
TOML
[package]
|
|
name = "beacon_node"
|
|
version = "0.3.5"
|
|
authors = ["Paul Hauner <paul@paulhauner.com>", "Age Manning <Age@AgeManning.com"]
|
|
edition = "2018"
|
|
|
|
[lib]
|
|
name = "beacon_node"
|
|
path = "src/lib.rs"
|
|
|
|
[dev-dependencies]
|
|
node_test_rig = { path = "../testing/node_test_rig" }
|
|
|
|
[features]
|
|
write_ssz_files = ["beacon_chain/write_ssz_files"] # Writes debugging .ssz files to /tmp during block processing.
|
|
|
|
[dependencies]
|
|
eth2_config = { path = "../common/eth2_config" }
|
|
beacon_chain = { path = "beacon_chain" }
|
|
types = { path = "../consensus/types" }
|
|
store = { path = "./store" }
|
|
client = { path = "client" }
|
|
clap = "2.33.3"
|
|
rand = "0.7.3"
|
|
slog = { version = "2.5.2", features = ["max_level_trace", "release_max_level_trace"] }
|
|
slog-term = "2.6.0"
|
|
slog-async = "2.5.0"
|
|
ctrlc = { version = "3.1.6", features = ["termination"] }
|
|
tokio = { version = "0.2.22", features = ["time"] }
|
|
exit-future = "0.2.0"
|
|
dirs = "3.0.1"
|
|
logging = { path = "../common/logging" }
|
|
directory = {path = "../common/directory"}
|
|
futures = "0.3.5"
|
|
environment = { path = "../lighthouse/environment" }
|
|
task_executor = { path = "../common/task_executor" }
|
|
genesis = { path = "genesis" }
|
|
eth2_testnet_config = { path = "../common/eth2_testnet_config" }
|
|
eth2_libp2p = { path = "./eth2_libp2p" }
|
|
eth2_ssz = "0.1.2"
|
|
serde = "1.0.116"
|
|
clap_utils = { path = "../common/clap_utils" }
|
|
hyper = "0.13.8"
|
|
lighthouse_version = { path = "../common/lighthouse_version" }
|
|
hex = "0.4.2"
|
|
slasher = { path = "../slasher" }
|