Fix ups and Clippy

This commit is contained in:
Michael Sproul
2023-01-17 15:57:34 +11:00
parent 2b84597525
commit 5ce14c8dce
22 changed files with 92 additions and 79 deletions

View File

@@ -3456,7 +3456,8 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
};
let (state, state_root_opt) = if head_slot < slot {
// Attempt an aggressive re-org if configured and the conditions are right.
if let Some(re_org_state) = self.get_state_for_re_org(slot, head_slot, head_block_root)
if let Some((re_org_state, re_org_state_root)) =
self.get_state_for_re_org(slot, head_slot, head_block_root)
{
info!(
self.log,
@@ -3464,7 +3465,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
"slot" => slot,
"head_to_reorg" => %head_block_root,
);
(re_org_state.pre_state, re_org_state.state_root)
(re_org_state, Some(re_org_state_root))
} else {
// Fetch the head state advanced through to `slot`, which should be present in the
// state cache thanks to the state advance timer.
@@ -3594,7 +3595,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
"Error loading block production state";
"error" => ?e,
);
)
})
.ok()??;
info!(

View File

@@ -192,11 +192,7 @@ where
balances_cache: <_>::default(),
time: anchor_state.slot(),
justified_checkpoint,
<<<<<<< HEAD
justified_balances: anchor_state.balances().to_vec(),
=======
justified_balances,
>>>>>>> origin/unstable
finalized_checkpoint,
best_justified_checkpoint: justified_checkpoint,
unrealized_justified_checkpoint: justified_checkpoint,

View File

@@ -530,7 +530,7 @@ pub fn signature_verify_chain_segment<T: BeaconChainTypes>(
}
let (first_root, first_block) = chain_segment.remove(0);
let (mut parent, first_block) = load_parent(first_root, first_block, chain)?;
let (mut parent, first_block) = load_parent(first_block, chain)?;
let slot = first_block.slot();
chain_segment.insert(0, (first_root, first_block));
@@ -795,7 +795,7 @@ impl<T: BeaconChainTypes> GossipVerifiedBlock<T> {
} else {
// The proposer index was *not* cached and we must load the parent in order to determine
// the proposer index.
let (mut parent, block) = load_parent(block_root, block, chain)?;
let (mut parent, block) = load_parent(block, chain)?;
debug!(
chain.log,
@@ -933,7 +933,7 @@ impl<T: BeaconChainTypes> SignatureVerifiedBlock<T> {
// Check the anchor slot before loading the parent, to avoid spurious lookups.
check_block_against_anchor_slot(block.message(), chain)?;
let (mut parent, block) = load_parent(block_root, block, chain)?;
let (mut parent, block) = load_parent(block, chain)?;
// Reject any block that exceeds our limit on skipped slots.
check_block_skip_slots(chain, parent.beacon_block.slot(), block.message())?;
@@ -986,7 +986,7 @@ impl<T: BeaconChainTypes> SignatureVerifiedBlock<T> {
let (mut parent, block) = if let Some(parent) = from.parent {
(parent, from.block)
} else {
load_parent(from.block_root, from.block, chain)?
load_parent(from.block, chain)?
};
let state = cheap_state_advance_to_obtain_committees(
@@ -1046,7 +1046,7 @@ impl<T: BeaconChainTypes> IntoExecutionPendingBlock<T> for SignatureVerifiedBloc
let (parent, block) = if let Some(parent) = self.parent {
(parent, self.block)
} else {
load_parent(self.block_root, self.block, chain)
load_parent(self.block, chain)
.map_err(|e| BlockSlashInfo::SignatureValid(header.clone(), e))?
};
@@ -1655,7 +1655,6 @@ fn verify_parent_block_is_known<T: BeaconChainTypes>(
/// whilst attempting the operation.
#[allow(clippy::type_complexity)]
fn load_parent<T: BeaconChainTypes>(
block_root: Hash256,
block: Arc<SignedBeaconBlock<T::EthSpec>>,
chain: &BeaconChain<T>,
) -> Result<

View File

@@ -7,6 +7,7 @@ edition = "2021"
[dev-dependencies]
tempfile = "3.1.0"
beacon_chain = {path = "../beacon_chain"}
logging = { path = "../../common/logging" }
[dependencies]
db-key = "0.0.5"
@@ -26,7 +27,7 @@ lighthouse_metrics = { path = "../../common/lighthouse_metrics" }
lru = "0.7.1"
sloggers = { version = "2.1.1", features = ["json"] }
directory = { path = "../../common/directory" }
tree_hash = "0.4.0"
tree_hash = "0.5.0"
take-until = "0.1.0"
zstd = "0.11.0"
strum = { version = "0.24.0", features = ["derive"] }

View File

@@ -1729,6 +1729,7 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> HotColdDB<E, Hot, Cold>
}
/// Load the state root of a restore point.
#[allow(unused)]
fn load_restore_point_hash(&self, restore_point_index: u64) -> Result<Hash256, Error> {
let key = Self::restore_point_key(restore_point_index);
self.cold_db
@@ -1738,6 +1739,7 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> HotColdDB<E, Hot, Cold>
}
/// Store the state root of a restore point.
#[allow(unused)]
fn store_restore_point_hash(
&self,
restore_point_index: u64,
@@ -1751,6 +1753,7 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> HotColdDB<E, Hot, Cold>
}
/// Convert a `restore_point_index` into a database key.
#[allow(unused)]
fn restore_point_key(restore_point_index: u64) -> Hash256 {
Hash256::from_low_u64_be(restore_point_index)
}

View File

@@ -1,5 +1,5 @@
use crate::*;
use ssz::{DecodeError, Encode};
use ssz::Encode;
use ssz_derive::Encode;
use std::io::{Read, Write};
use std::sync::Arc;

View File

@@ -146,7 +146,7 @@ impl<E: EthSpec> StateCache<E> {
.iter()
.rev()
.find_map(|(ancestor_slot, state_root)| {
(*ancestor_slot <= slot).then(|| *state_root)
(*ancestor_slot <= slot).then_some(*state_root)
})?;
let state = self.get_by_state_root(state_root)?;

View File

@@ -218,6 +218,7 @@ impl DatabaseValidator {
}
}
#[allow(clippy::wrong_self_convention)]
fn into_immutable_validator(&self) -> Result<(PublicKey, ValidatorImmutable), Error> {
let pubkey = PublicKey::deserialize_uncompressed(&self.pubkey)
.map_err(Error::InvalidValidatorPubkeyBytes)?;
@@ -236,14 +237,14 @@ impl DatabaseValidator {
#[cfg(test)]
mod test {
use super::*;
use crate::test_utils::{BeaconChainHarness, EphemeralHarnessType};
use crate::{HotColdDB, KeyValueStore, MemoryStore};
use beacon_chain::test_utils::BeaconChainHarness;
use logging::test_logger;
use std::sync::Arc;
use store::HotColdDB;
use types::{BeaconState, EthSpec, Keypair, MainnetEthSpec};
type E = MainnetEthSpec;
type T = EphemeralHarnessType<E>;
type Store = MemoryStore<E>;
fn get_state(validator_count: usize) -> (BeaconState<E>, Vec<Keypair>) {
let harness = BeaconChainHarness::builder(MainnetEthSpec)
@@ -257,14 +258,14 @@ mod test {
(harness.get_current_state(), harness.validator_keypairs)
}
fn get_store() -> BeaconStore<T> {
fn get_store() -> Arc<HotColdDB<E, Store, Store>> {
Arc::new(
HotColdDB::open_ephemeral(<_>::default(), E::default_spec(), test_logger()).unwrap(),
)
}
#[allow(clippy::needless_range_loop)]
fn check_cache_get(cache: &ValidatorPubkeyCache<T>, keypairs: &[Keypair]) {
fn check_cache_get(cache: &ValidatorPubkeyCache<E, Store, Store>, keypairs: &[Keypair]) {
let validator_count = keypairs.len();
for i in 0..validator_count + 1 {
@@ -297,7 +298,7 @@ mod test {
let store = get_store();
let mut cache = ValidatorPubkeyCache::new(&state, store).expect("should create cache");
let mut cache = ValidatorPubkeyCache::new(&state, &store).expect("should create cache");
check_cache_get(&cache, &keypairs[..]);
@@ -330,13 +331,12 @@ mod test {
let store = get_store();
// Create a new cache.
let cache = ValidatorPubkeyCache::new(&state, store.clone()).expect("should create cache");
let cache = ValidatorPubkeyCache::new(&state, &store).expect("should create cache");
check_cache_get(&cache, &keypairs[..]);
drop(cache);
// Re-init the cache from the store.
let mut cache =
ValidatorPubkeyCache::load_from_store(store.clone()).expect("should open cache");
let mut cache = ValidatorPubkeyCache::load_from_store(&store).expect("should open cache");
check_cache_get(&cache, &keypairs[..]);
// Add some more keypairs.
@@ -349,7 +349,7 @@ mod test {
drop(cache);
// Re-init the cache from the store.
let cache = ValidatorPubkeyCache::load_from_store(store).expect("should open cache");
let cache = ValidatorPubkeyCache::load_from_store(&store).expect("should open cache");
check_cache_get(&cache, &keypairs[..]);
}
}