forked from cerc-io/plugeth
GasLimit check updated
This commit is contained in:
parent
c74c07eed1
commit
ee0a1bec6c
@ -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() {
|
||||
|
@ -239,6 +239,10 @@ func (s *StateDB) Root() []byte {
|
||||
return s.trie.Root()
|
||||
}
|
||||
|
||||
func (s *StateDB) Trie() *trie.SecureTrie {
|
||||
return s.trie
|
||||
}
|
||||
|
||||
// Resets the trie and all siblings
|
||||
func (s *StateDB) Reset() {
|
||||
s.trie.Reset()
|
||||
|
@ -79,6 +79,10 @@ func RunVmTest(p string, t *testing.T) {
|
||||
helper.CreateFileTests(t, p, &tests)
|
||||
|
||||
for name, test := range tests {
|
||||
helper.Logger.SetLogLevel(4)
|
||||
if name != "CallEcrecover0_overlappingInputOutput" {
|
||||
continue
|
||||
}
|
||||
db, _ := ethdb.NewMemDatabase()
|
||||
statedb := state.New(nil, db)
|
||||
for addr, account := range test.Pre {
|
||||
@ -177,6 +181,7 @@ func RunVmTest(p string, t *testing.T) {
|
||||
*/
|
||||
}
|
||||
}
|
||||
//statedb.Trie().PrintRoot()
|
||||
}
|
||||
logger.Flush()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user