diff options
| author | Patrick Lodder <[email protected]> | 2014-08-01 17:21:05 +0200 |
|---|---|---|
| committer | Patrick Lodder <[email protected]> | 2014-08-04 11:05:47 +0200 |
| commit | 07f31a38f40b931c2830f4c10a9abe47493024c1 (patch) | |
| tree | e1902dcc5a4f47cae1046425783b0b9823f7b9d8 /src/main.cpp | |
| parent | Merge pull request #584 from patricklodder/1.8-dev-auxpow (diff) | |
| download | discoin-07f31a38f40b931c2830f4c10a9abe47493024c1.tar.xz discoin-07f31a38f40b931c2830f4c10a9abe47493024c1.zip | |
Tidy up retargeting code and debug.log output.
- remove unused int64_t retargetSpacing
- modulate timespan in an isolated int64_t nModulatedTimespan
- keep nActualTimespan intact, to retain the original value
- compress debug.log output from 5 into 3 lines while retaining
all information.
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/main.cpp b/src/main.cpp index f30a3b657..03dfae485 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1288,7 +1288,6 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead bool fNewDifficultyProtocol = (nHeight >= nDiffChangeTarget); int64_t retargetTimespan = nTargetTimespan; - int64_t retargetSpacing = nTargetSpacing; int64_t retargetInterval = nInterval; if (fNewDifficultyProtocol) { @@ -1336,49 +1335,48 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead // Limit adjustment step int64_t nActualTimespan = pindexLast->GetBlockTime() - pindexFirst->GetBlockTime(); - LogPrintf(" nActualTimespan = %d before bounds\n", nActualTimespan); + int64_t nModulatedTimespan = nActualTimespan; if (fNewDifficultyProtocol) //DigiShield implementation - thanks to RealSolid & WDC for this code { // amplitude filter - thanks to daft27 for this code - nActualTimespan = retargetTimespan + (nActualTimespan - retargetTimespan)/8; + nModulatedTimespan = retargetTimespan + (nModulatedTimespan - retargetTimespan)/8; - if (nActualTimespan < (retargetTimespan - (retargetTimespan/4)) ) nActualTimespan = (retargetTimespan - (retargetTimespan/4)); - if (nActualTimespan > (retargetTimespan + (retargetTimespan/2)) ) nActualTimespan = (retargetTimespan + (retargetTimespan/2)); + if (nModulatedTimespan < (retargetTimespan - (retargetTimespan/4)) ) nModulatedTimespan = (retargetTimespan - (retargetTimespan/4)); + if (nModulatedTimespan > (retargetTimespan + (retargetTimespan/2)) ) nModulatedTimespan = (retargetTimespan + (retargetTimespan/2)); } else if (pindexLast->nHeight+1 > 10000) { - if (nActualTimespan < nTargetTimespan/4) - nActualTimespan = nTargetTimespan/4; - if (nActualTimespan > nTargetTimespan*4) - nActualTimespan = nTargetTimespan*4; + if (nModulatedTimespan < nTargetTimespan/4) + nModulatedTimespan = nTargetTimespan/4; + if (nModulatedTimespan > nTargetTimespan*4) + nModulatedTimespan = nTargetTimespan*4; } else if (pindexLast->nHeight+1 > 5000) { - if (nActualTimespan < nTargetTimespan/8) - nActualTimespan = nTargetTimespan/8; - if (nActualTimespan > nTargetTimespan*4) - nActualTimespan = nTargetTimespan*4; + if (nModulatedTimespan < nTargetTimespan/8) + nModulatedTimespan = nTargetTimespan/8; + if (nModulatedTimespan > nTargetTimespan*4) + nModulatedTimespan = nTargetTimespan*4; } else { - if (nActualTimespan < nTargetTimespan/16) - nActualTimespan = nTargetTimespan/16; - if (nActualTimespan > nTargetTimespan*4) - nActualTimespan = nTargetTimespan*4; + if (nModulatedTimespan < nTargetTimespan/16) + nModulatedTimespan = nTargetTimespan/16; + if (nModulatedTimespan > nTargetTimespan*4) + nModulatedTimespan = nTargetTimespan*4; } // Retarget CBigNum bnNew; bnNew.SetCompact(pindexLast->nBits); - bnNew *= nActualTimespan; + bnNew *= nModulatedTimespan; bnNew /= retargetTimespan; if (bnNew > Params().ProofOfWorkLimit()) bnNew = Params().ProofOfWorkLimit(); /// debug print - LogPrintf("GetNextWorkRequired RETARGET\n"); - LogPrintf("nTargetTimespan = %d nActualTimespan = %d\n", retargetTimespan, nActualTimespan); + LogPrintf("RETARGET: target: %d, actual: %d, modulated: %d\n", retargetTimespan, nActualTimespan, nModulatedTimespan); LogPrintf("Before: %08x %s\n", pindexLast->nBits, CBigNum().SetCompact(pindexLast->nBits).getuint256().ToString()); LogPrintf("After: %08x %s\n", bnNew.GetCompact(), bnNew.getuint256().ToString()); |