Struct solana_core::repair::repair_service::RepairService
source · pub struct RepairService { /* private fields */ }
Implementations§
source§impl RepairService
impl RepairService
pub fn new( blockstore: Arc<Blockstore>, exit: Arc<AtomicBool>, repair_socket: Arc<UdpSocket>, ancestor_hashes_socket: Arc<UdpSocket>, quic_endpoint_sender: AsyncSender<LocalRequest>, quic_endpoint_response_sender: CrossbeamSender<(SocketAddr, Vec<u8>)>, repair_info: RepairInfo, verified_vote_receiver: VerifiedVoteReceiver, outstanding_requests: Arc<RwLock<OutstandingShredRepairs>>, ancestor_hashes_replay_update_receiver: AncestorHashesReplayUpdateReceiver, dumped_slots_receiver: DumpedSlotsReceiver, popular_pruned_forks_sender: PopularPrunedForksSender ) -> Self
sourcepub fn generate_repairs_for_slot(
blockstore: &Blockstore,
slot: Slot,
slot_meta: &SlotMeta,
max_repairs: usize
) -> Vec<ShredRepairType>
pub fn generate_repairs_for_slot( blockstore: &Blockstore, slot: Slot, slot_meta: &SlotMeta, max_repairs: usize ) -> Vec<ShredRepairType>
If this slot is missing shreds generate repairs
sourcepub fn generate_repairs_for_fork(
blockstore: &Blockstore,
repairs: &mut Vec<ShredRepairType>,
max_repairs: usize,
slot: Slot
)
pub fn generate_repairs_for_fork( blockstore: &Blockstore, repairs: &mut Vec<ShredRepairType>, max_repairs: usize, slot: Slot )
Repairs any fork starting at the input slot (uses blockstore for fork info)
pub fn request_repair_for_shred_from_peer( cluster_info: Arc<ClusterInfo>, cluster_slots: Arc<ClusterSlots>, pubkey: Option<Pubkey>, slot: u64, shred_index: u64, repair_socket: &UdpSocket, outstanding_repair_requests: Arc<RwLock<OutstandingShredRepairs>> )
pub fn join(self) -> Result<()>
Auto Trait Implementations§
impl Freeze for RepairService
impl !RefUnwindSafe for RepairService
impl Send for RepairService
impl Sync for RepairService
impl Unpin for RepairService
impl !UnwindSafe for RepairService
Blanket Implementations§
source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
source§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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§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