fix(dns-discovery/peer-exchange): check if peer is already tagged

If we `continue` when the peer is already known by the `peerStore` then
the next step of checking the tags is useless (no tags if peer is not
known).

There are two ways around it:
1. either do nothing if peer is already in peer store
2. OR, do nothing if peer is in peer store and is already tagged

I opted for the second approach to ensure all peers are tagged properly.
This commit is contained in:
fryorcraken.eth 2023-03-07 15:44:03 +11:00
parent b7bc09d493
commit 952aadd7bb
No known key found for this signature in database
GPG Key ID: A82ED75A8DFC50A4
2 changed files with 7 additions and 2 deletions

View File

@ -96,6 +96,13 @@ export class PeerDiscoveryDns
if (!this._started) return;
const peerInfos = multiaddrsToPeerInfo(peer.getFullMultiaddrs());
peerInfos.forEach(async (peerInfo) => {
if (
(await this._components.peerStore.getTags(peerInfo.id)).find(
({ name }) => name === DEFAULT_BOOTSTRAP_TAG_NAME
)
)
return;
await this._components.peerStore.tagPeer(
peerInfo.id,
DEFAULT_BOOTSTRAP_TAG_NAME,

View File

@ -170,8 +170,6 @@ export class PeerExchangeDiscovery
if (!peerId || !multiaddrs || multiaddrs.length === 0) continue;
if (await this.components.peerStore.has(peerId)) continue;
if (
(await this.components.peerStore.getTags(peerId)).find(
({ name }) => name === DEFAULT_PEER_EXCHANGE_TAG_NAME