Add a new option to the config for capping the maximum difficulty. #312

Merged
telackey merged 2 commits from telackey/capped into v1.10.26-statediff-v4 2023-02-02 03:53:42 +00:00
Showing only changes of commit 44612c2964 - Show all commits
+8 -1
View File
@@ -31,6 +31,7 @@ import (
"github.com/ethereum/go-ethereum/consensus/misc"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/trie"
@@ -330,7 +331,13 @@ func (ethash *Ethash) verifyHeader(chain consensus.ChainHeaderReader, header, pa
// the difficulty that a new block should have when created at time
// given the parent block's time and difficulty.
func (ethash *Ethash) CalcDifficulty(chain consensus.ChainHeaderReader, time uint64, parent *types.Header) *big.Int {
return CalcDifficulty(chain.Config(), time, parent)
var config = chain.Config()
var ret = CalcDifficulty(config, time, parent)
if nil != config.CappedMaximumDifficulty && ret.Cmp(config.CappedMaximumDifficulty) >= 0 {
log.Info(fmt.Sprintf("Using capped difficulty %d", config.CappedMaximumDifficulty))
return config.CappedMaximumDifficulty
}
return ret
}
// CalcDifficulty is the difficulty adjustment algorithm. It returns