diff --git a/miner/worker.go b/miner/worker.go index 1c87362f4..afab9a7e1 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -401,6 +401,7 @@ func recalcRecommit(minRecommit, prev time.Duration, target float64, inc bool) t } else { next = prevF*(1-intervalAdjustRatio) + intervalAdjustRatio*(target-intervalAdjustBias) min := float64(minRecommit.Nanoseconds()) + min = min + min*intervalAdjustRatio if next < min { next = min } diff --git a/miner/worker_test.go b/miner/worker_test.go index 59fbbbcdc..defe0e818 100644 --- a/miner/worker_test.go +++ b/miner/worker_test.go @@ -297,9 +297,10 @@ func testAdjustInterval(t *testing.T, chainConfig *params.ChainConfig, engine co estimate := origin*(1-intervalAdjustRatio) + intervalAdjustRatio*(origin/0.8+intervalAdjustBias) wantMinInterval, wantRecommitInterval = 3*time.Second, time.Duration(estimate)*time.Nanosecond case 2: - estimate := result[index-1] + // estimate := result[index-1] min := float64(3 * time.Second.Nanoseconds()) - estimate = estimate*(1-intervalAdjustRatio) + intervalAdjustRatio*(min-intervalAdjustBias) + // estimate = estimate*(1-intervalAdjustRatio) + intervalAdjustRatio*(min-intervalAdjustBias) + estimate := min + min*intervalAdjustRatio wantMinInterval, wantRecommitInterval = 3*time.Second, time.Duration(estimate)*time.Nanosecond case 3: wantMinInterval, wantRecommitInterval = time.Second, time.Second