aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
authortdb3 <106488469+tdb3@users.noreply.github.com>2024-02-23 14:00:53 -0500
committerSergi Delgado Segura <sergi.delgado.s@gmail.com>2024-04-22 14:07:14 -0400
commit82f41d76f1c6ad38290917dad5499ffbe6b3974d (patch)
treeb80262baf7bde7ca5dd433590af75c24db3a9e8b /src/net.cpp
parent3120a4678ab2a71a381e847688f44068749cfa97 (diff)
downloadbitcoin-82f41d76f1c6ad38290917dad5499ffbe6b3974d.tar.xz
Added seednode prioritization message to help output
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/net.cpp b/src/net.cpp
index c5055c1241..b4806a6fd8 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -2168,35 +2168,37 @@ void CConnman::WakeMessageHandler()
void CConnman::ThreadDNSAddressSeed()
{
- FastRandomContext rng;
- std::vector<std::string> seeds = m_params.DNSSeeds();
- Shuffle(seeds.begin(), seeds.end(), rng);
- int seeds_right_now = 0; // Number of seeds left before testing if we have enough connections
- int target_outbound_connections = 2;
+ constexpr int TARGET_OUTBOUND_CONNECTIONS = 2;
int outbound_connection_count = 0;
- auto start = NodeClock::now();
if (gArgs.IsArgSet("-seednode")) {
- LogPrintf("-seednode enabled. Trying the provided seeds before defaulting to the dnsseeds.\n");
+ auto start = NodeClock::now();
+ constexpr std::chrono::seconds SEEDNODE_TIMEOUT = 30s;
+ LogPrintf("-seednode enabled. Trying the provided seeds for %d seconds before defaulting to the dnsseeds.\n", SEEDNODE_TIMEOUT.count());
while (!interruptNet) {
if (!interruptNet.sleep_for(std::chrono::milliseconds(500)))
return;
// Abort if we have spent enough time without reaching our target.
// Giving seed nodes 30 seconds so this does not become a race against fixedseeds (which triggers after 1 min)
- if (NodeClock::now() > start + 30s) {
+ if (NodeClock::now() > start + SEEDNODE_TIMEOUT) {
LogPrintf("Couldn't connect to enough peers via seed nodes. Handing fetch logic to the DNS seeds.\n");
break;
}
outbound_connection_count = GetFullOutboundConnCount();
- if (outbound_connection_count >= target_outbound_connections) {
- LogPrintf("P2P peers available. Finished fetching data from seed nodes.\n");
+ if (outbound_connection_count >= TARGET_OUTBOUND_CONNECTIONS) {
+ LogPrintf("P2P peers available. Finished fetching data from seed nodes.\n");
break;
}
}
}
+ FastRandomContext rng;
+ std::vector<std::string> seeds = m_params.DNSSeeds();
+ Shuffle(seeds.begin(), seeds.end(), rng);
+ int seeds_right_now = 0; // Number of seeds left before testing if we have enough connections
+
if (gArgs.GetBoolArg("-forcednsseed", DEFAULT_FORCEDNSSEED)) {
// When -forcednsseed is provided, query all.
seeds_right_now = seeds.size();
@@ -2208,7 +2210,7 @@ void CConnman::ThreadDNSAddressSeed()
}
// Proceed with dnsseeds if seednodes hasn't reached the target or if forcednsseed is set
- if (outbound_connection_count < target_outbound_connections || seeds_right_now) {
+ if (outbound_connection_count < TARGET_OUTBOUND_CONNECTIONS || seeds_right_now) {
// goal: only query DNS seed if address need is acute
// * If we have a reasonable number of peers in addrman, spend
// some time trying them first. This improves user privacy by
@@ -2239,7 +2241,7 @@ void CConnman::ThreadDNSAddressSeed()
if (!interruptNet.sleep_for(w)) return;
to_wait -= w;
- if (GetFullOutboundConnCount() >= target_outbound_connections) {
+ if (GetFullOutboundConnCount() >= TARGET_OUTBOUND_CONNECTIONS) {
if (found > 0) {
LogPrintf("%d addresses found from DNS seeds\n", found);
LogPrintf("P2P peers available. Finished DNS seeding.\n");