diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-04 00:05:51 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-04 00:05:51 +0800 |
commit | ee0a1bec6c3ce942e51265535961ac6a745d33eb (patch) | |
tree | 9d2181ca6dc3f7c107b2348cc6366c9296dd9bb2 /core | |
parent | c74c07eed19f8a328f47aca7b9e01dcdf8731847 (diff) | |
download | go-tangerine-ee0a1bec6c3ce942e51265535961ac6a745d33eb.tar.gz go-tangerine-ee0a1bec6c3ce942e51265535961ac6a745d33eb.tar.zst go-tangerine-ee0a1bec6c3ce942e51265535961ac6a745d33eb.zip |
GasLimit check updated
Diffstat (limited to 'core')
-rw-r--r-- | core/block_processor.go | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/block_processor.go b/core/block_processor.go index 5e943bda5..e48660a67 100644 --- a/core/block_processor.go +++ b/core/block_processor.go @@ -204,9 +204,6 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big // Tre receipt Trie's root (R = (Tr [[H1, R1], ... [Hn, R1]])) receiptSha := types.DeriveSha(receipts) if bytes.Compare(receiptSha, header.ReceiptHash) != 0 { - fmt.Println("receipts", receipts) - state.Sync() - chainlogger.Infof("%s\n", state.Dump()) err = fmt.Errorf("validating receipt root. received=%x got=%x", header.ReceiptHash, receiptSha) return } @@ -249,9 +246,14 @@ func (sm *BlockProcessor) ValidateBlock(block, parent *types.Block) error { return fmt.Errorf("Difficulty check failed for block %v, %v", block.Header().Difficulty, expd) } - expl := CalcGasLimit(parent, block) - if expl.Cmp(block.Header().GasLimit) != 0 { - return fmt.Errorf("GasLimit check failed for block %v, %v", block.Header().GasLimit, expl) + //expl := CalcGasLimit(parent, block) + //if expl.Cmp(block.Header().GasLimit) != 0 { + + // block.gasLimit - parent.gasLimit <= parent.gasLimit / 1024 + a := new(big.Int).Sub(block.Header().GasLimit, parent.Header().GasLimit) + b := new(big.Int).Div(parent.Header().GasLimit, big.NewInt(1024)) + if a.Cmp(b) > 0 { + return fmt.Errorf("GasLimit check failed for block %v", block.Header().GasLimit) } if block.Time() < parent.Time() { |