mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-19 13:58:28 +00:00
Optimise slasher DB layout and switch to MDBX (#2776)
## Issue Addressed Closes #2286 Closes #2538 Closes #2342 ## Proposed Changes Part II of major slasher optimisations after #2767 These changes will be backwards-incompatible due to the move to MDBX (and the schema change) 😱 * [x] Shrink attester keys from 16 bytes to 7 bytes. * [x] Shrink attester records from 64 bytes to 6 bytes. * [x] Separate `DiskConfig` from regular `Config`. * [x] Add configuration for the LRU cache size. * [x] Add a "migration" that deletes any legacy LMDB database.
This commit is contained in:
@@ -670,7 +670,6 @@ fn no_reconstruct_historic_states_flag() {
|
||||
fn slasher_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.run_with_zero_port()
|
||||
.with_config_and_dir(|config, dir| {
|
||||
if let Some(slasher_config) = &config.slasher {
|
||||
@@ -689,7 +688,6 @@ fn slasher_dir_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-dir", dir.path().as_os_str().to_str())
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
if let Some(slasher_config) = &config.slasher {
|
||||
@@ -703,7 +701,6 @@ fn slasher_dir_flag() {
|
||||
fn slasher_update_period_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.flag("slasher-update-period", Some("100"))
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
@@ -715,21 +712,21 @@ fn slasher_update_period_flag() {
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
fn slasher_slot_offset() {
|
||||
// TODO: check that the offset is actually stored, once the config is un-hacked
|
||||
// See: https://github.com/sigp/lighthouse/pull/2767#discussion_r741610402
|
||||
fn slasher_slot_offset_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.flag("slasher-slot-offset", Some("11.25"))
|
||||
.run();
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
let slasher_config = config.slasher.as_ref().unwrap();
|
||||
assert_eq!(slasher_config.slot_offset, 11.25);
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn slasher_slot_offset_nan() {
|
||||
fn slasher_slot_offset_nan_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.flag("slasher-slot-offset", Some("NaN"))
|
||||
.run();
|
||||
}
|
||||
@@ -737,7 +734,6 @@ fn slasher_slot_offset_nan() {
|
||||
fn slasher_history_length_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.flag("slasher-history-length", Some("2048"))
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
@@ -763,11 +759,24 @@ fn slasher_max_db_size_flag() {
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
fn slasher_attestation_cache_size_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-att-cache-size", Some("10000"))
|
||||
.run()
|
||||
.with_config(|config| {
|
||||
let slasher_config = config
|
||||
.slasher
|
||||
.as_ref()
|
||||
.expect("Unable to parse Slasher config");
|
||||
assert_eq!(slasher_config.attestation_root_cache_size, 10000);
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
fn slasher_chunk_size_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-chunk-size", Some("32"))
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
let slasher_config = config
|
||||
@@ -781,7 +790,6 @@ fn slasher_chunk_size_flag() {
|
||||
fn slasher_validator_chunk_size_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.flag("slasher-validator-chunk-size", Some("512"))
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
@@ -797,7 +805,6 @@ fn slasher_broadcast_flag() {
|
||||
CommandLineTest::new()
|
||||
.flag("slasher", None)
|
||||
.flag("slasher-broadcast", None)
|
||||
.flag("slasher-max-db-size", Some("16"))
|
||||
.run_with_zero_port()
|
||||
.with_config(|config| {
|
||||
let slasher_config = config
|
||||
|
||||
Reference in New Issue
Block a user