mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 02:33:24 -03: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)).
|
||||
|
||||
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
|
||||
to addrman with).
|
||||
|
||||
|
|
|
@ -202,7 +202,7 @@ static std::vector<CAddress> ConvertSeeds(const std::vector<uint8_t> &vSeedsIn)
|
|||
while (!s.eof()) {
|
||||
CService 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);
|
||||
LogPrint(BCLog::NET, "Added hardcoded seed: %s\n", addr.ToStringAddrPort());
|
||||
vSeedsOut.push_back(addr);
|
||||
|
@ -2273,7 +2273,7 @@ void CConnman::ThreadDNSAddressSeed()
|
|||
AddAddrFetch(seed);
|
||||
} else {
|
||||
std::vector<CAddress> vAdd;
|
||||
ServiceFlags requiredServiceBits = GetDesirableServiceFlags(NODE_NONE);
|
||||
constexpr ServiceFlags requiredServiceBits{SeedsServiceFlags()};
|
||||
std::string host = strprintf("x%x.%s", requiredServiceBits, seed);
|
||||
CNetAddr resolveSource;
|
||||
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
|
||||
* use when describing peers which we know to be desirable, but for which
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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 */
|
||||
void SetServiceFlagsIBDCache(bool status);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue