diff options
| author | Gregory Maxwell <[email protected]> | 2015-04-19 11:47:56 -0700 |
|---|---|---|
| committer | Gregory Maxwell <[email protected]> | 2015-04-19 11:47:56 -0700 |
| commit | a784f90c9892f06b9fea4e7579f5eca3585482c3 (patch) | |
| tree | 7af900f4ac6a234617cd7a20322b29eef795e015 /src/addrman.cpp | |
| parent | Merge pull request #6012 (diff) | |
| download | discoin-a784f90c9892f06b9fea4e7579f5eca3585482c3.tar.xz discoin-a784f90c9892f06b9fea4e7579f5eca3585482c3.zip | |
Cap nAttempts penalty at 8 and switch to pow instead of a division loop.
On hosts that had spent some time with a failed internet connection their
nAttempts penalty was going through the roof (e.g. thousands for all peers)
and as a result the connect search was pegging the CPU and failing to get
more than a 4 connections after days of running (because it was taking so
long per try).
Diffstat (limited to 'src/addrman.cpp')
| -rw-r--r-- | src/addrman.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/addrman.cpp b/src/addrman.cpp index 5d9527f0e..094c913e9 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -67,9 +67,8 @@ double CAddrInfo::GetChance(int64_t nNow) const if (nSinceLastTry < 60 * 10) fChance *= 0.01; - // deprioritize 50% after each failed attempt - for (int n = 0; n < nAttempts; n++) - fChance /= 1.5; + // 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)); return fChance; } |