pub trait SafetyScope:
CommitAgreement
+ SafetyStateRecovery
+ OneValidationVotePerRound { }Expand description
Remark (What safety does not claim). Three exclusions are worth stating explicitly,
because each is a property a reader may expect CommitAgreement to carry and it does not.
- Nothing is claimed about faulty validators’ state. A faulty validator may record any
block at any height.
CommitAgreementconstrains which certificates can exist; the observable consequence inTipAdvancesOnlyOnValidCertificateis about correct validators. - Nothing is claimed about progress. An execution in which no block is ever committed
satisfies every result in this module. In particular a super owner that issues two
conflicting fast proposals can split the vote and wedge the height permanently, and that is
a liveness failure, not a safety one — see
linera_core::proof::liveness. - Nothing is claimed when
MaxByzantineWeightfails. Above the fault bound,CorrectValidatorInIntersectionfails and conflicting commits become possible. What remains isAccountability.