consensus: check both vote orderings for dupeout txs

This commit is contained in:
Ethan Buchman 2015-03-16 17:53:36 -07:00 committed by Jae Kwon
parent 33f8943543
commit f55609a792

View File

@ -390,6 +390,8 @@ func (s *State) ExecTx(tx_ blk.Tx) error {
if tx.VoteA.Type == blk.VoteTypeCommit && tx.VoteA.Round < tx.VoteB.Round {
// Check special case (not an error, validator must be slashed!)
// Validators should not sign another vote after committing.
} else if tx.VoteB.Type == blk.VoteTypeCommit && tx.VoteB.Round < tx.VoteA.Round {
// We need to check both orderings of the votes
} else {
if tx.VoteA.Round != tx.VoteB.Round {
return errors.New("DupeoutTx rounds don't match")