|
|
@ -8,8 +8,6 @@ |
|
|
|
#include "serialize.h" |
|
|
|
#include "serialize.h" |
|
|
|
#include "streams.h" |
|
|
|
#include "streams.h" |
|
|
|
|
|
|
|
|
|
|
|
using namespace std; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int CAddrInfo::GetTriedBucket(const uint256& nKey) const |
|
|
|
int CAddrInfo::GetTriedBucket(const uint256& nKey) const |
|
|
|
{ |
|
|
|
{ |
|
|
|
uint64_t hash1 = (CHashWriter(SER_GETHASH, 0) << nKey << GetKey()).GetHash().GetCheapHash(); |
|
|
|
uint64_t hash1 = (CHashWriter(SER_GETHASH, 0) << nKey << GetKey()).GetHash().GetCheapHash(); |
|
|
@ -68,7 +66,7 @@ double CAddrInfo::GetChance(int64_t nNow) const |
|
|
|
fChance *= 0.01; |
|
|
|
fChance *= 0.01; |
|
|
|
|
|
|
|
|
|
|
|
// deprioritize 66% after each failed attempt, but at most 1/28th to avoid the search taking forever or overly penalizing outages.
|
|
|
|
// deprioritize 66% after each failed attempt, but at most 1/28th to avoid the search taking forever or overly penalizing outages.
|
|
|
|
fChance *= pow(0.66, min(nAttempts, 8)); |
|
|
|
fChance *= pow(0.66, std::min(nAttempts, 8)); |
|
|
|
|
|
|
|
|
|
|
|
return fChance; |
|
|
|
return fChance; |
|
|
|
} |
|
|
|
} |
|
|
@ -258,7 +256,7 @@ bool CAddrMan::Add_(const CAddress& addr, const CNetAddr& source, int64_t nTimeP |
|
|
|
bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60); |
|
|
|
bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60); |
|
|
|
int64_t nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60); |
|
|
|
int64_t nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60); |
|
|
|
if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty)) |
|
|
|
if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty)) |
|
|
|
pinfo->nTime = max((int64_t)0, addr.nTime - nTimePenalty); |
|
|
|
pinfo->nTime = std::max((int64_t)0, addr.nTime - nTimePenalty); |
|
|
|
|
|
|
|
|
|
|
|
// add services
|
|
|
|
// add services
|
|
|
|
pinfo->nServices |= addr.nServices; |
|
|
|
pinfo->nServices |= addr.nServices; |
|
|
@ -283,7 +281,7 @@ bool CAddrMan::Add_(const CAddress& addr, const CNetAddr& source, int64_t nTimeP |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
pinfo = Create(addr, source, &nId); |
|
|
|
pinfo = Create(addr, source, &nId); |
|
|
|
pinfo->nTime = max((int64_t)0, (int64_t)pinfo->nTime - nTimePenalty); |
|
|
|
pinfo->nTime = std::max((int64_t)0, (int64_t)pinfo->nTime - nTimePenalty); |
|
|
|
nNew++; |
|
|
|
nNew++; |
|
|
|
fNew = true; |
|
|
|
fNew = true; |
|
|
|
} |
|
|
|
} |
|
|
|