pub trait SimultaneousVotes: VoteConstructionSites { }Expand description
Remark (Votes a correct validator may hold simultaneously). Nothing above forbids a
correct validator from holding a confirmed_vote and a validated_vote at once — it
does, whenever it validates in a round above its last confirmation. What the invariants
forbid is two of the same kind in the same round. The reporting projection
ChainManagerInfo::pending picks whichever is higher, which is why a client observing a
validator sees a single “pending” vote even though two are stored.
Similarly, timeout_vote and fallback_vote may both be set: they are votes on the same
Timeout value in different rounds (FallbackVote), so they are not conflicting votes in
the sense of OneValidationVotePerRound — and if their rounds coincide, so do their
payloads, and hence their signatures.