diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/block_processor.go | 3 | ||||
-rw-r--r-- | core/chain_manager.go | 9 |
2 files changed, 5 insertions, 7 deletions
diff --git a/core/block_processor.go b/core/block_processor.go index 6224d7c59..aa8fcc9e7 100644 --- a/core/block_processor.go +++ b/core/block_processor.go @@ -242,8 +242,7 @@ func (sm *BlockProcessor) ValidateBlock(block, parent *types.Block) error { } expd := CalcDifficulty(block, parent) - if expd.Cmp(block.Header().Difficulty) < 0 { - fmt.Println("parent\n", parent) + if expd.Cmp(block.Header().Difficulty) != 0 { return fmt.Errorf("Difficulty check failed for block %v, %v", block.Header().Difficulty, expd) } diff --git a/core/chain_manager.go b/core/chain_manager.go index caa2e7b43..c68b7cfc2 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -23,12 +23,11 @@ type StateQuery interface { func CalcDifficulty(block, parent *types.Block) *big.Int { diff := new(big.Int) - bh, ph := block.Header(), parent.Header() - adjust := new(big.Int).Rsh(ph.Difficulty, 10) - if bh.Time >= ph.Time+13 { - diff.Sub(ph.Difficulty, adjust) + adjust := new(big.Int).Rsh(parent.Difficulty(), 10) + if block.Time() >= parent.Time()+8 { + diff.Sub(parent.Difficulty(), adjust) } else { - diff.Add(ph.Difficulty, adjust) + diff.Add(parent.Difficulty(), adjust) } return diff |