diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2019-03-19 20:52:46 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 13:50:04 +0800 |
commit | bd0b5d25574c691b104fbd181b4ed80976ee21ae (patch) | |
tree | 3f9dd4e37cb00e3594b35d39f35da8f2f90f94cb | |
parent | 31bd7b061eb204447a0d932defd491a56950e792 (diff) | |
download | dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.tar dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.tar.gz dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.tar.bz2 dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.tar.lz dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.tar.xz dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.tar.zst dexon-bd0b5d25574c691b104fbd181b4ed80976ee21ae.zip |
core: check coinbase for empty block (#282)
-rw-r--r-- | core/headerchain.go | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/core/headerchain.go b/core/headerchain.go index 61822210c..0c2000064 100644 --- a/core/headerchain.go +++ b/core/headerchain.go @@ -519,13 +519,20 @@ func (hc *HeaderChain) verifyDexonHeader(header *types.Header, } gs := gov.GetStateForConfigAtRound(header.Round) - node, err := gs.GetNodeByID(coreBlock.ProposerID) - if err != nil { - return err - } - if header.Coinbase != node.Owner { - return fmt.Errorf("coinbase mismatch") + if coreBlock.IsEmpty() { + if header.Coinbase != (common.Address{}) { + return fmt.Errorf("coinbase should be nil for empty block") + } + } else { + node, err := gs.GetNodeByID(coreBlock.ProposerID) + if err != nil { + return err + } + + if header.Coinbase != node.Owner { + return fmt.Errorf("coinbase mismatch") + } } if header.Time != uint64(coreBlock.Finalization.Timestamp.UnixNano()/1000000) { |