pub struct ChainStakerSet { /* private fields */ }Expand description
Chain-backed staker set. Cheap to clone via the shared inner
Arc; the runtime holds one Arc<dyn StakerSet> and consumers
access the cached set through it. The background loop that keeps the
cache fresh is the single shared multiplexed-poller task the runtime
owns, so a node-restart cycle never leaks chain-poll tasks.
Trait Implementations§
Source§impl Debug for ChainStakerSet
impl Debug for ChainStakerSet
Source§impl StakerSet for ChainStakerSet
impl StakerSet for ChainStakerSet
Source§fn active_nodes(&self) -> Vec<NodeId>
fn active_nodes(&self) -> Vec<NodeId>
Snapshot of the active-staker set. Order is unspecified; the caller
MUST randomize before any selection step that an attacker could
influence (e.g. bootstrap target picking).
Source§fn len(&self) -> usize
fn len(&self) -> usize
Cardinality of the active set. Default implementation walks
Self::active_nodes; production impls (chain-backed cache, etc.)
SHOULD override with an O(1) counter.Auto Trait Implementations§
impl Freeze for ChainStakerSet
impl RefUnwindSafe for ChainStakerSet
impl Send for ChainStakerSet
impl Sync for ChainStakerSet
impl Unpin for ChainStakerSet
impl UnsafeUnpin for ChainStakerSet
impl UnwindSafe for ChainStakerSet
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 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::RequestCreates a shared type from an unshared type.