From 2bda1ebffd0fa27bac47e21659dc1b93c9d9527f Mon Sep 17 00:00:00 2001 From: Tuna Date: Thu, 25 Oct 2018 10:29:59 +0700 Subject: [PATCH] DV is enabled from epoch 2nd --- consensus/posv/posv.go | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/consensus/posv/posv.go b/consensus/posv/posv.go index f3c1554289..f7a75fb1ff 100644 --- a/consensus/posv/posv.go +++ b/consensus/posv/posv.go @@ -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 }