pub struct Actor<B: Block, R: Rng + Spawner + Metrics + Clock + GClock + Storage, V: Variant, P: PublicKey, Z: Coordinator<PublicKey = P>> { /* private fields */ }
Expand description
The Actor is responsible for receiving uncertified blocks from the broadcast mechanism, receiving notarizations and finalizations from consensus, and reconstructing a total order of blocks.
The actor is designed to be used in a view-based model. Each view corresponds to a potential block in the chain. The actor will only finalize a block if it has a corresponding finalization.
The actor also provides a backfill mechanism for missing blocks. If the actor receives a finalization for a block that is ahead of its current view, it will request the missing blocks from its peers. This ensures that the actor can catch up to the rest of the network if it falls behind.
Implementations§
Auto Trait Implementations§
impl<B, R, V, P, Z> Freeze for Actor<B, R, V, P, Z>
impl<B, R, V, P, Z> !RefUnwindSafe for Actor<B, R, V, P, Z>
impl<B, R, V, P, Z> Send for Actor<B, R, V, P, Z>
impl<B, R, V, P, Z> Sync for Actor<B, R, V, P, Z>
impl<B, R, V, P, Z> Unpin for Actor<B, R, V, P, Z>
impl<B, R, V, P, Z> !UnwindSafe for Actor<B, R, V, P, Z>
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
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>
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