Skip to content

sgns::ConsensusManager::SlotState

Runtime slot arbitration state.

Public Attributes

Name
std::string best_proposal_id
Current best proposal id in the slot.
std::string best_tx_hash
Hash used for deterministic tie-breaking.
std::unordered_set< std::string > voted_proposal_ids
Local proposal ids already voted for.
std::vector< Proposal > eligible_candidates
Approved contenders for the slot; late arrivals are retained for the next attempt.
std::vector< ScanPendingCandidate > scan_pending_candidates
Validated contenders retained while finalized-slot scanning is indeterminate.
std::chrono::steady_clock::time_point candidate_deadline
Fixed local contention deadline.
bool candidates_frozen
Prevents admission after the deadline has passed.
bool active_vote_locked
Prevents creation of a replacement local vote.
bool certificate_scan_pending
A failed finalized-slot scan blocks vote work until it succeeds.
bool slot_decided
std::unordered_map< std::string, Vote > observed_votes
uint64_t dissent_seen
Bumped when a vote disagrees with the local winner.
uint64_t dissent_evaluated
dissent_seen at the last unwinnability evaluation.

Public Attributes Documentation

variable best_proposal_id

std::string best_proposal_id;

Current best proposal id in the slot.

variable best_tx_hash

std::string best_tx_hash;

Hash used for deterministic tie-breaking.

variable voted_proposal_ids

std::unordered_set< std::string > voted_proposal_ids;

Local proposal ids already voted for.

variable eligible_candidates

std::vector< Proposal > eligible_candidates;

Approved contenders for the slot; late arrivals are retained for the next attempt.

variable scan_pending_candidates

std::vector< ScanPendingCandidate > scan_pending_candidates;

Validated contenders retained while finalized-slot scanning is indeterminate.

variable candidate_deadline

std::chrono::steady_clock::time_point candidate_deadline {};

Fixed local contention deadline.

variable candidates_frozen

bool candidates_frozen = false;

Prevents admission after the deadline has passed.

variable active_vote_locked

bool active_vote_locked = false;

Prevents creation of a replacement local vote.

variable certificate_scan_pending

bool certificate_scan_pending = false;

A failed finalized-slot scan blocks vote work until it succeeds.

variable slot_decided

bool slot_decided = false;

A certificate for the slot is already accepted; no attempt can follow.

variable observed_votes

std::unordered_map< std::string, Vote > observed_votes;

Voter id -> that voter's latest signature-verified vote in this slot, across attempts. Under the one-vote-per-slot rule a voter committed to another proposal is weight the local winner can never gain, which is what makes unwinnability provable; keeping the whole vote lets a re-arbitrated winner be re-tallied from here instead of a second per-proposal queue.

variable dissent_seen

uint64_t dissent_seen = 0;

Bumped when a vote disagrees with the local winner.

variable dissent_evaluated

uint64_t dissent_evaluated = 0;

dissent_seen at the last unwinnability evaluation.


Updated on 2026-09-25 at 15:46:10 +0000