pub struct DuplicateShredHandler {
buffer: HashMap<(Slot, Pubkey), [Option<DuplicateShred>; 3]>,
consumed: HashMap<Slot, bool>,
last_root: Slot,
blockstore: Arc<Blockstore>,
leader_schedule_cache: Arc<LeaderScheduleCache>,
bank_forks: Arc<RwLock<BankForks>>,
cached_on_epoch: Epoch,
cached_staked_nodes: Arc<HashMap<Pubkey, u64>>,
cached_slots_in_epoch: u64,
}
Fields§
§buffer: HashMap<(Slot, Pubkey), [Option<DuplicateShred>; 3]>
§consumed: HashMap<Slot, bool>
§last_root: Slot
§blockstore: Arc<Blockstore>
§leader_schedule_cache: Arc<LeaderScheduleCache>
§bank_forks: Arc<RwLock<BankForks>>
§cached_on_epoch: Epoch
§cached_staked_nodes: Arc<HashMap<Pubkey, u64>>
§cached_slots_in_epoch: u64
Implementations§
source§impl DuplicateShredHandler
impl DuplicateShredHandler
pub fn new( blockstore: Arc<Blockstore>, leader_schedule_cache: Arc<LeaderScheduleCache>, bank_forks: Arc<RwLock<BankForks>> ) -> Self
fn cache_root_info(&mut self)
fn handle_shred_data(&mut self, chunk: DuplicateShred) -> Result<(), Error>
fn should_consume_slot(&mut self, slot: Slot) -> bool
fn maybe_prune_buffer(&mut self)
Trait Implementations§
source§impl DuplicateShredHandlerTrait for DuplicateShredHandler
impl DuplicateShredHandlerTrait for DuplicateShredHandler
fn handle(&mut self, shred_data: DuplicateShred)
Auto Trait Implementations§
impl RefUnwindSafe for DuplicateShredHandler
impl Send for DuplicateShredHandler
impl Sync for DuplicateShredHandler
impl Unpin for DuplicateShredHandler
impl UnwindSafe for DuplicateShredHandler
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request