diff options
author | tdb3 <106488469+tdb3@users.noreply.github.com> | 2024-02-23 14:00:53 -0500 |
---|---|---|
committer | Sergi Delgado Segura <sergi.delgado.s@gmail.com> | 2024-04-22 14:07:14 -0400 |
commit | 82f41d76f1c6ad38290917dad5499ffbe6b3974d (patch) | |
tree | b80262baf7bde7ca5dd433590af75c24db3a9e8b /src/net.cpp | |
parent | 3120a4678ab2a71a381e847688f44068749cfa97 (diff) | |
download | bitcoin-82f41d76f1c6ad38290917dad5499ffbe6b3974d.tar.xz |
Added seednode prioritization message to help output
Diffstat (limited to 'src/net.cpp')
-rw-r--r-- | src/net.cpp | 26 |
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"); |