Merge pull request #235 from ngtuna/dv-epoch-1

DV is enabled from epoch 2nd
This commit is contained in:
Tuna 2018-10-25 10:30:30 +07:00 committed by GitHub
commit a0889d555b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -643,19 +643,22 @@ func (c *Posv) verifySeal(chain consensus.ChainReader, header *types.Header, par
}
// header must contain validator info following double validation design
validator, err := c.RecoverValidator(header)
if err != nil {
return err
}
// start checking from epoch 2nd.
if header.Number.Uint64() > c.config.Epoch {
validator, err := c.RecoverValidator(header)
if err != nil {
return err
}
// verify validator
assignedValidator, err := c.GetValidator(creator, snap, chain, header)
if err != nil {
return err
}
if validator != assignedValidator {
log.Debug("Bad block detected. Header contains wrong pair of creator-validator", "creator", creator, "assigned validator", assignedValidator, "wrong validator", validator)
return errFailedDoubleValidation
// verify validator
assignedValidator, err := c.GetValidator(creator, snap, chain, header)
if err != nil {
return err
}
if validator != assignedValidator {
log.Debug("Bad block detected. Header contains wrong pair of creator-validator", "creator", creator, "assigned validator", assignedValidator, "wrong validator", validator)
return errFailedDoubleValidation
}
}
return nil
}