forked from anza-xyz/alpenglow
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Each epoch, we will draw the proposer and relays in addition to the leaders (which we already do).
// Per-epoch: exactly NUM_PROPOSERS proposers per slot
pub struct ProposerSchedule<const M: usize> {
pub epoch: u64,
pub slots: Vec<[Pubkey; M]>, // slots[slot] = [proposer_0, ..., proposer_{M-1}]
}
// Per-epoch: exactly 1 leader per slot
pub struct LeaderSchedule {
pub epoch: u64,
pub leaders: Vec<Pubkey>, // leaders[slot] = leader for that slot
}
// Per-epoch: exactly NUM_RELAYS relays per slot
pub struct RelaySchedule<const N: usize> {
pub epoch: u64,
pub committees: Vec<[Pubkey; N]>, // committees[slot] = [relay_0, ..., relay_{N-1}]
}