-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
When we are in good period (after GST), and we have a faulty proposer that send different Proposal messages, if a correct process locks a block B, not all correct processes will update validBlock to B. See https://github.com/tendermint/tendermint/blob/develop/consensus/state.go#L1610.
Ensuring this property is needed for termination. See https://github.com/tendermint/spec.
Furthermore, observing different Proposal messages (or different block proposals) is clearly a sign of faulty behaviour so we should consider adding slashing rule in this case.
In case we observe Polka for a current round which does not correspond to ProposalBlock, we should set ProposalBlock to nil and try to obtain it using gossip. We use similar mechanism when we commit BlockId different than ProposalBlock.