Merge pull request #125 from tendermint/anton/2769-canonical

spec/consensus: canonical vs subjective commit
This commit is contained in:
Sean Braithwaite
2020-07-30 12:00:54 +02:00
committed by GitHub

View File

@@ -337,3 +337,13 @@ where two conflicting reorg-proposals are signed.
Assuming that the external coordination medium and protocol is robust,
it follows that forks are less of a concern than [censorship
attacks](#censorship-attacks).
### Canonical vs subjective commit
We distinguish between "canonical" and "subjective" commits. A subjective commit is what
each validator sees locally when they decide to commit a block. The canonical commit is
what is included by the proposer of the next block in the `LastCommit` field of
the block. This is what makes it canonical and ensures every validator agrees on the canonical commit,
even if it is different from the +2/3 votes a validator has seen, which caused the validator to
commit the respective block. Each block contains a canonical +2/3 commit for the previous
block.