Skip to content

Commit

Permalink
Use RelevantServices instead of node_network in AttemptToEvict.
Browse files Browse the repository at this point in the history
Use of node_network here is really meant to be a proxy of "likely to
 send us blocks in the future".  RelevantServices is the right criteria
 now.

Github-Pull: bitcoin#9052
Rebased-From: d32036a
  • Loading branch information
gmaxwell authored and luke-jr committed Dec 2, 2016
1 parent ca1fd75 commit 3a3bcbf
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/net.cpp
Expand Up @@ -877,7 +877,7 @@ struct NodeEvictionCandidate
int64_t nMinPingUsecTime;
int64_t nLastBlockTime;
int64_t nLastTXTime;
bool fNetworkNode;
bool fRelevantServices;
bool fRelayTxes;
bool fBloomFilter;
CAddress addr;
Expand All @@ -902,7 +902,7 @@ static bool CompareNodeBlockTime(const NodeEvictionCandidate &a, const NodeEvict
{
// There is a fall-through here because it is common for a node to have many peers which have not yet relayed a block.
if (a.nLastBlockTime != b.nLastBlockTime) return a.nLastBlockTime < b.nLastBlockTime;
if (a.fNetworkNode != b.fNetworkNode) return b.fNetworkNode;
if (a.fRelevantServices != b.fRelevantServices) return b.fRelevantServices;
return a.nTimeConnected > b.nTimeConnected;
}

Expand Down Expand Up @@ -936,7 +936,8 @@ static bool AttemptToEvictConnection() {
if (node->fDisconnect)
continue;
NodeEvictionCandidate candidate = {node->id, node->nTimeConnected, node->nMinPingUsecTime,
node->nLastBlockTime, node->nLastTXTime, node->fNetworkNode,
node->nLastBlockTime, node->nLastTXTime,
(node->nServices & nRelevantServices) == nRelevantServices,
node->fRelayTxes, node->pfilter != NULL, node->addr, node->nKeyedNetGroup};
vEvictionCandidates.push_back(candidate);
}
Expand Down

0 comments on commit 3a3bcbf

Please sign in to comment.