PeerGroup: check required services on discovered addresses via addr/addrv2

If the discovered peer has the required services, mark it with a slightly
higher priority than peers discovered via `PeerDiscovery`.
This commit is contained in:
Andreas Schildbach 2023-03-29 00:12:38 +02:00
parent 1a30c00df8
commit a9b9af8102

View file

@ -319,8 +319,10 @@ public class PeerGroup implements TransactionBroadcaster {
Collections.shuffle(addresses); Collections.shuffle(addresses);
int numAdded = 0; int numAdded = 0;
for (PeerAddress address : addresses) { for (PeerAddress address : addresses) {
// Add to inactive pool. if (!address.getServices().has(requiredServices))
boolean added = addInactive(address, 0); continue;
// Add to inactive pool with slightly elevated priority because services fit.
boolean added = addInactive(address, 1);
if (added) if (added)
numAdded++; numAdded++;
// Limit addresses picked per message. // Limit addresses picked per message.