mod reduced_tree; use std::sync::Arc; use store::Store; use types::{EthSpec, Hash256, Slot}; pub use reduced_tree::ThreadSafeReducedTree; pub type Result = std::result::Result; pub trait LmdGhost: Send + Sync { fn new(store: Arc, genesis_root: Hash256) -> Self; fn process_message( &self, validator_index: usize, block_hash: Hash256, block_slot: Slot, ) -> Result<()>; fn find_head(&self, start_block_root: Hash256, weight: F) -> Result where F: Fn(usize) -> Option + Copy; fn update_finalized_root(&self, new_root: Hash256) -> Result<()>; }