Use pnode->nLastRecv as sync score directly
NodeSyncScore() should find the node which we recv data most recently, so put a negative sign to pnode->nLastRecv is indeed wrong. Also change the return value type to int64_t. Signed-off-by: Huang Le <4tarhl@gmail.com>
This commit is contained in:
parent
97ab93f50b
commit
09a54a65c0
1 changed files with 6 additions and 6 deletions
12
src/net.cpp
12
src/net.cpp
|
@ -1455,13 +1455,13 @@ bool OpenNetworkConnection(const CAddress& addrConnect, CSemaphoreGrant *grantOu
|
||||||
|
|
||||||
// for now, use a very simple selection metric: the node from which we received
|
// for now, use a very simple selection metric: the node from which we received
|
||||||
// most recently
|
// most recently
|
||||||
double static NodeSyncScore(const CNode *pnode) {
|
static int64_t NodeSyncScore(const CNode *pnode) {
|
||||||
return -pnode->nLastRecv;
|
return pnode->nLastRecv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void static StartSync(const vector<CNode*> &vNodes) {
|
void static StartSync(const vector<CNode*> &vNodes) {
|
||||||
CNode *pnodeNewSync = NULL;
|
CNode *pnodeNewSync = NULL;
|
||||||
double dBestScore = 0;
|
int64_t nBestScore = 0;
|
||||||
|
|
||||||
int nBestHeight = g_signals.GetHeight().get_value_or(0);
|
int nBestHeight = g_signals.GetHeight().get_value_or(0);
|
||||||
|
|
||||||
|
@ -1473,10 +1473,10 @@ void static StartSync(const vector<CNode*> &vNodes) {
|
||||||
(pnode->nStartingHeight > (nBestHeight - 144)) &&
|
(pnode->nStartingHeight > (nBestHeight - 144)) &&
|
||||||
(pnode->nVersion < NOBLKS_VERSION_START || pnode->nVersion >= NOBLKS_VERSION_END)) {
|
(pnode->nVersion < NOBLKS_VERSION_START || pnode->nVersion >= NOBLKS_VERSION_END)) {
|
||||||
// if ok, compare node's score with the best so far
|
// if ok, compare node's score with the best so far
|
||||||
double dScore = NodeSyncScore(pnode);
|
int64_t nScore = NodeSyncScore(pnode);
|
||||||
if (pnodeNewSync == NULL || dScore > dBestScore) {
|
if (pnodeNewSync == NULL || nScore > nBestScore) {
|
||||||
pnodeNewSync = pnode;
|
pnodeNewSync = pnode;
|
||||||
dBestScore = dScore;
|
nBestScore = nScore;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue