Skip to content

Setup: Proposer, Leader, and Relay schedule #5

@MaxResnick

Description

@MaxResnick

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}]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions