pub struct SyncRound {
pub task_id: String,
pub round: u32,
pub fragment_quorums: HashMap<u32, FragmentQuorumStatus>,
pub state_root: Hash,
pub syncer_signature: Signature,
pub published_at: Timestamp,
pub no_quorum_witnesses: Option<Vec<Signature>>,
}Expand description
Status of an in-flight or completed outer round, as published by the
syncer. state_root is committed on-chain; observers can challenge it
with a fraud proof.
Fields§
§task_id: String§round: u32§fragment_quorums: HashMap<u32, FragmentQuorumStatus>Per-fragment status: which fragments have reached quorum.
state_root: HashMerkle root over (fragment_id, accepted_outer_gradient_hashes, post-aggregation parameter hash). Committed on-chain each round.
syncer_signature: SignatureSyncer signature over state_root || round || task_id.
published_at: TimestampWhen this round status was published.
no_quorum_witnesses: Option<Vec<Signature>>No-Endorsement-Certificate carry-forward witnesses.
None for normal rounds. Some(sigs) when the witness committee
could not assemble a 2f+1 quorum within grace_window_ms — each
committee member publishes a signed “no-quorum” cert and the run
advances to round + 1 carrying forward the prior state_root
(which is set to the previous round’s state root, or Hash::zero()
for round 0 NEC).