aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorPatrick Lodder <[email protected]>2014-08-01 17:21:05 +0200
committerPatrick Lodder <[email protected]>2014-08-04 11:05:47 +0200
commit07f31a38f40b931c2830f4c10a9abe47493024c1 (patch)
treee1902dcc5a4f47cae1046425783b0b9823f7b9d8 /src/main.cpp
parentMerge pull request #584 from patricklodder/1.8-dev-auxpow (diff)
downloaddiscoin-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.cpp38
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());