Browse Source
Do not store more than 200 timedata samples.
Github-Pull: #6545
Rebased-From: 8be371db340b03dc03142c1bb3390fdfc84f56b4
pull/145/head
Pavel Janík
9 years ago
committed by
Wladimir J. van der Laan
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
1 changed files with
5 additions and
1 deletions
-
src/timedata.cpp
|
@ -40,16 +40,20 @@ static int64_t abs64(int64_t n) |
|
|
return (n >= 0 ? n : -n); |
|
|
return (n >= 0 ? n : -n); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#define BITCOIN_TIMEDATA_MAX_SAMPLES 200 |
|
|
|
|
|
|
|
|
void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) |
|
|
void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) |
|
|
{ |
|
|
{ |
|
|
LOCK(cs_nTimeOffset); |
|
|
LOCK(cs_nTimeOffset); |
|
|
// Ignore duplicates
|
|
|
// Ignore duplicates
|
|
|
static set<CNetAddr> setKnown; |
|
|
static set<CNetAddr> setKnown; |
|
|
|
|
|
if (setKnown.size() == BITCOIN_TIMEDATA_MAX_SAMPLES) |
|
|
|
|
|
return; |
|
|
if (!setKnown.insert(ip).second) |
|
|
if (!setKnown.insert(ip).second) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
// Add data
|
|
|
// Add data
|
|
|
static CMedianFilter<int64_t> vTimeOffsets(200,0); |
|
|
static CMedianFilter<int64_t> vTimeOffsets(BITCOIN_TIMEDATA_MAX_SAMPLES, 0); |
|
|
vTimeOffsets.input(nOffsetSample); |
|
|
vTimeOffsets.input(nOffsetSample); |
|
|
LogPrintf("Added time data, samples %d, offset %+d (%+d minutes)\n", vTimeOffsets.size(), nOffsetSample, nOffsetSample/60); |
|
|
LogPrintf("Added time data, samples %d, offset %+d (%+d minutes)\n", vTimeOffsets.size(), nOffsetSample, nOffsetSample/60); |
|
|
|
|
|
|
|
|