pub struct Probe<E, S, D, V, T, P, B>where
E: Spawner + CryptoRng + Clock + Metrics,
S: Scheme<V::Commitment, PublicKey = P>,
D: Provider<Scope = Epoch, Scheme = S>,
V: Variant,
T: Strategy,
P: PublicKey,
B: Blocker<PublicKey = P>,{ /* private fields */ }Expand description
Discovers a sync floor by adopting the highest finalization from a peer sample.
The actor is a two-phase state machine. It starts in discovery, waits until a subscriber needs a floor, then solicits and samples peers’ finalizations without answering any of its own. Once a marshal is attached, it hands off to service, answering peers’ requests from that marshal and never issuing outbound requests. A source node that never needed a floor attaches a marshal without consuming one and enters service without soliciting peers.
Implementations§
Auto Trait Implementations§
impl<E, S, D, V, T, P, B> !RefUnwindSafe for Probe<E, S, D, V, T, P, B>
impl<E, S, D, V, T, P, B> !UnwindSafe for Probe<E, S, D, V, T, P, B>
impl<E, S, D, V, T, P, B> Freeze for Probe<E, S, D, V, T, P, B>
impl<E, S, D, V, T, P, B> Send for Probe<E, S, D, V, T, P, B>
impl<E, S, D, V, T, P, B> Sync for Probe<E, S, D, V, T, P, B>
impl<E, S, D, V, T, P, B> Unpin for Probe<E, S, D, V, T, P, B>
impl<E, S, D, V, T, P, B> UnsafeUnpin for Probe<E, S, D, V, T, P, B>where
Cell<E>: UnsafeUnpin,
Receiver<Message<S, V>>: UnsafeUnpin,
D: UnsafeUnpin,
T: UnsafeUnpin,
B: UnsafeUnpin,
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more