mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-17 12:58:31 +00:00
De-duplicate attestations in the slasher (#2767)
## Issue Addressed
Closes https://github.com/sigp/lighthouse/issues/2112
Closes https://github.com/sigp/lighthouse/issues/1861
## Proposed Changes
Collect attestations by validator index in the slasher, and use the magic of reference counting to automatically discard redundant attestations. This results in us storing only 1-2% of the attestations observed when subscribed to all subnets, which carries over to a 50-100x reduction in data stored 🎉
## Additional Info
There's some nuance to the configuration of the `slot-offset`. It has a profound effect on the effictiveness of de-duplication, see the docs added to the book for an explanation: 5442e695e5/book/src/slasher.md (slot-offset)
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
use crate::{database::CURRENT_SCHEMA_VERSION, Config, Error, SlasherDB};
|
||||
use crate::{
|
||||
config::{DEFAULT_BROADCAST, DEFAULT_SLOT_OFFSET},
|
||||
database::CURRENT_SCHEMA_VERSION,
|
||||
Config, Error, SlasherDB,
|
||||
};
|
||||
use lmdb::RwTransaction;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use std::path::PathBuf;
|
||||
@@ -25,8 +29,9 @@ impl Into<ConfigV2> for ConfigV1 {
|
||||
validator_chunk_size: self.validator_chunk_size,
|
||||
history_length: self.history_length,
|
||||
update_period: self.update_period,
|
||||
slot_offset: DEFAULT_SLOT_OFFSET,
|
||||
max_db_size_mbs: self.max_db_size_mbs,
|
||||
broadcast: false,
|
||||
broadcast: DEFAULT_BROADCAST,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user