pub struct Config<E, M, S, V, T, B>where
E: Spawner + CryptoRng + Clock + Metrics,
M: Manager<PublicKey = S::PublicKey, Directory = <V::ApplicationBlock as ReshareBlock>::Directory>,
S: Scheme<V::Commitment>,
V: Variant,
V::ApplicationBlock: ReshareBlock,
<V::ApplicationBlock as ReshareBlock>::Signer: Signer<PublicKey = S::PublicKey>,
T: Strategy,
B: Blocker<PublicKey = S::PublicKey>,{
pub context: E,
pub manager: M,
pub bootstrap: Bootstrap<S::PublicKey, <V::ApplicationBlock as ReshareBlock>::Directory>,
pub verifier: S,
pub genesis: EpochInfo<<V::ApplicationBlock as ReshareBlock>::Variant, S::PublicKey, <V::ApplicationBlock as ReshareBlock>::Directory>,
pub strategy: T,
pub blocker: B,
pub blocks_per_epoch: NonZeroU64,
pub retry_timeout: NonZeroDuration,
pub mailbox_size: NonZeroUsize,
pub block_codec_config: <V::ApplicationBlock as Read>::Cfg,
}Expand description
Configuration for the DKG probe actor.
Fields§
§context: ERuntime context.
manager: MP2P manager used to track the bootstrap participants when discovery begins.
bootstrap: Bootstrap<S::PublicKey, <V::ApplicationBlock as ReshareBlock>::Directory>The weakly subjective checkpoint to bootstrap from.
verifier: SAll-epoch certificate verifier built from the constant BLS identity.
genesis: EpochInfo<<V::ApplicationBlock as ReshareBlock>::Variant, S::PublicKey, <V::ApplicationBlock as ReshareBlock>::Directory>Public epoch information carried by genesis.
strategy: TStrategy for certificate verification.
blocker: BBlocker used to block peers that send invalid bootstrap data.
blocks_per_epoch: NonZeroU64Number of blocks in each epoch.
retry_timeout: NonZeroDurationHow long to wait before trying another boundary responder or re-broadcasting discovery.
mailbox_size: NonZeroUsizeMailbox capacity.
block_codec_config: <V::ApplicationBlock as Read>::CfgCodec configuration for application blocks received in boundary responses.
Auto Trait Implementations§
impl<E, M, S, V, T, B> Freeze for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
E: Freeze,
M: Freeze,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Freeze,
S: Freeze,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Freeze,
T: Freeze,
B: Freeze,
<<V as Variant>::ApplicationBlock as Read>::Cfg: Freeze,
impl<E, M, S, V, T, B> RefUnwindSafe for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
E: RefUnwindSafe,
M: RefUnwindSafe,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: RefUnwindSafe,
S: RefUnwindSafe,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: RefUnwindSafe,
T: RefUnwindSafe,
B: RefUnwindSafe,
<<V as Variant>::ApplicationBlock as Read>::Cfg: RefUnwindSafe,
impl<E, M, S, V, T, B> Send for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Send,
S: Send,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Send,
<<V as Variant>::ApplicationBlock as Read>::Cfg: Send,
impl<E, M, S, V, T, B> Sync for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
M: Sync,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Sync,
S: Sync,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Sync,
B: Sync,
<<V as Variant>::ApplicationBlock as Read>::Cfg: Sync,
impl<E, M, S, V, T, B> Unpin for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
E: Unpin,
M: Unpin,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Unpin,
S: Unpin,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: Unpin,
T: Unpin,
B: Unpin,
<<V as Variant>::ApplicationBlock as Read>::Cfg: Unpin,
impl<E, M, S, V, T, B> UnsafeUnpin for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
E: UnsafeUnpin,
M: UnsafeUnpin,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: UnsafeUnpin,
S: UnsafeUnpin,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: UnsafeUnpin,
T: UnsafeUnpin,
B: UnsafeUnpin,
<<V as Variant>::ApplicationBlock as Read>::Cfg: UnsafeUnpin,
impl<E, M, S, V, T, B> UnwindSafe for Config<E, M, S, V, T, B>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
E: UnwindSafe,
M: UnwindSafe,
Bootstrap<<S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: UnwindSafe,
S: UnwindSafe,
EpochInfo<<<V as Variant>::ApplicationBlock as ReshareBlock>::Variant, <S as Verifier>::PublicKey, <<V as Variant>::ApplicationBlock as ReshareBlock>::Directory>: UnwindSafe,
T: UnwindSafe,
B: UnwindSafe,
<<V as Variant>::ApplicationBlock as Read>::Cfg: UnwindSafe,
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