From 6767c9588727f6b0eca29ced17a102a2c6c58300 Mon Sep 17 00:00:00 2001 From: Christopher Franko Date: Thu, 24 Sep 2015 10:59:49 -0400 Subject: [PATCH] make the diff adjustments better --- core/chain_util.go | 8 +++++++- params/protocol_params.go | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/chain_util.go b/core/chain_util.go index 4412137e33..7e99c7d4c1 100644 --- a/core/chain_util.go +++ b/core/chain_util.go @@ -40,7 +40,13 @@ var ( // given the parent block's time and difficulty. func CalcDifficulty(time, parentTime uint64, parentNumber, parentDiff *big.Int) *big.Int { diff := new(big.Int) - adjust := new(big.Int).Div(parentDiff, params.DifficultyBoundDivisor) + + if parentNumber <= 23000 { + adjust := new(big.Int).Div(parentDiff, params.DifficultyBoundDivisor) + } else { + adjust := new(big.Int).Div(parentDiff, params.DifficultyBoundDivisor2) + } + bigTime := new(big.Int) bigParentTime := new(big.Int) diff --git a/params/protocol_params.go b/params/protocol_params.go index 1721c597b9..ca4a2001c7 100755 --- a/params/protocol_params.go +++ b/params/protocol_params.go @@ -30,6 +30,7 @@ var ( TxGas = big.NewInt(21000) // Per transaction. NOTE: Not payable on data of calls between transactions. TxDataZeroGas = big.NewInt(4) // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions. DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations. + DifficultyBoundDivisor2 = big.NewInt(512) // Difficulty should adjust faster. QuadCoeffDiv = big.NewInt(512) // Divisor for the quadratic particle of the memory cost equation. GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block. DurationLimit = big.NewInt(60) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not.