commonware_broadcast/linked/signer/
config.rs

1use crate::{
2    linked::{Context, Epoch},
3    Application, Collector, ThresholdCoordinator,
4};
5use commonware_cryptography::Scheme;
6use commonware_utils::Array;
7use std::time::Duration;
8
9/// Configuration when creating an `Actor`.
10pub struct Config<
11    C: Scheme,
12    D: Array,
13    A: Application<Context = Context<C::PublicKey>, Digest = D>,
14    Z: Collector<Digest = D>,
15    S: ThresholdCoordinator<Index = Epoch>,
16> {
17    pub crypto: C,
18    pub coordinator: S,
19    pub application: A,
20    pub collector: Z,
21    pub mailbox_size: usize,
22    pub pending_verify_size: usize,
23    pub namespace: Vec<u8>,
24    pub refresh_epoch_timeout: Duration,
25    pub rebroadcast_timeout: Duration,
26    pub epoch_bounds: (u64, u64),
27    pub height_bound: u64,
28    pub journal_name_prefix: String,
29    pub journal_heights_per_section: u64,
30    pub journal_replay_concurrency: usize,
31}