mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
net: decouple state independent service flags from desirable ones
This former one will be moved to the peer manager class in the following-up commit.
This commit is contained in:
parent
97df4e3887
commit
f9ac96b8d6
3 changed files with 11 additions and 6 deletions
|
@ -4,7 +4,7 @@ Utility to generate the seeds.txt list that is compiled into the client
|
||||||
(see [src/chainparamsseeds.h](/src/chainparamsseeds.h) and other utilities in [contrib/seeds](/contrib/seeds)).
|
(see [src/chainparamsseeds.h](/src/chainparamsseeds.h) and other utilities in [contrib/seeds](/contrib/seeds)).
|
||||||
|
|
||||||
Be sure to update `PATTERN_AGENT` in `makeseeds.py` to include the current version,
|
Be sure to update `PATTERN_AGENT` in `makeseeds.py` to include the current version,
|
||||||
and remove old versions as necessary (at a minimum when GetDesirableServiceFlags
|
and remove old versions as necessary (at a minimum when SeedsServiceFlags()
|
||||||
changes its default return value, as those are the services which seeds are added
|
changes its default return value, as those are the services which seeds are added
|
||||||
to addrman with).
|
to addrman with).
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,7 @@ static std::vector<CAddress> ConvertSeeds(const std::vector<uint8_t> &vSeedsIn)
|
||||||
while (!s.eof()) {
|
while (!s.eof()) {
|
||||||
CService endpoint;
|
CService endpoint;
|
||||||
s >> endpoint;
|
s >> endpoint;
|
||||||
CAddress addr{endpoint, GetDesirableServiceFlags(NODE_NONE)};
|
CAddress addr{endpoint, SeedsServiceFlags()};
|
||||||
addr.nTime = rng.rand_uniform_delay(Now<NodeSeconds>() - one_week, -one_week);
|
addr.nTime = rng.rand_uniform_delay(Now<NodeSeconds>() - one_week, -one_week);
|
||||||
LogPrint(BCLog::NET, "Added hardcoded seed: %s\n", addr.ToStringAddrPort());
|
LogPrint(BCLog::NET, "Added hardcoded seed: %s\n", addr.ToStringAddrPort());
|
||||||
vSeedsOut.push_back(addr);
|
vSeedsOut.push_back(addr);
|
||||||
|
@ -2273,7 +2273,7 @@ void CConnman::ThreadDNSAddressSeed()
|
||||||
AddAddrFetch(seed);
|
AddAddrFetch(seed);
|
||||||
} else {
|
} else {
|
||||||
std::vector<CAddress> vAdd;
|
std::vector<CAddress> vAdd;
|
||||||
ServiceFlags requiredServiceBits = GetDesirableServiceFlags(NODE_NONE);
|
constexpr ServiceFlags requiredServiceBits{SeedsServiceFlags()};
|
||||||
std::string host = strprintf("x%x.%s", requiredServiceBits, seed);
|
std::string host = strprintf("x%x.%s", requiredServiceBits, seed);
|
||||||
CNetAddr resolveSource;
|
CNetAddr resolveSource;
|
||||||
if (!resolveSource.SetInternal(host)) {
|
if (!resolveSource.SetInternal(host)) {
|
||||||
|
|
|
@ -330,12 +330,17 @@ std::vector<std::string> serviceFlagsToStr(uint64_t flags);
|
||||||
* guaranteed to not change dependent on state - ie they are suitable for
|
* guaranteed to not change dependent on state - ie they are suitable for
|
||||||
* use when describing peers which we know to be desirable, but for which
|
* use when describing peers which we know to be desirable, but for which
|
||||||
* we do not have a confirmed set of service flags.
|
* we do not have a confirmed set of service flags.
|
||||||
*
|
|
||||||
* If the NODE_NONE return value is changed, contrib/seeds/makeseeds.py
|
|
||||||
* should be updated appropriately to filter for the same nodes.
|
|
||||||
*/
|
*/
|
||||||
ServiceFlags GetDesirableServiceFlags(ServiceFlags services);
|
ServiceFlags GetDesirableServiceFlags(ServiceFlags services);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State independent service flags.
|
||||||
|
* If the return value is changed, contrib/seeds/makeseeds.py
|
||||||
|
* should be updated appropriately to filter for nodes with
|
||||||
|
* desired service flags (compatible with our new flags).
|
||||||
|
*/
|
||||||
|
constexpr ServiceFlags SeedsServiceFlags() { return ServiceFlags(NODE_NETWORK | NODE_WITNESS); }
|
||||||
|
|
||||||
/** Set the current IBD status in order to figure out the desirable service flags */
|
/** Set the current IBD status in order to figure out the desirable service flags */
|
||||||
void SetServiceFlagsIBDCache(bool status);
|
void SetServiceFlagsIBDCache(bool status);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue