check alreadyHaves from system.cacheRelay
continuous-integration/drone/push Build is running Details

This commit is contained in:
Martti Malmi 2024-02-01 10:11:12 +02:00
parent eb9f23b73b
commit 13a773a1ad
2 changed files with 5 additions and 3 deletions

View File

@ -1,4 +1,4 @@
/*
Content-Security-Policy: default-src 'self'; manifest-src *; child-src 'none'; worker-src 'self'; frame-src youtube.com www.youtube.com https://platform.twitter.com https://embed.tidal.com https://w.soundcloud.com https://www.mixcloud.com https://open.spotify.com https://player.twitch.tv https://embed.music.apple.com https://embed.wavlake.com https://challenges.cloudflare.com; style-src 'self' 'unsafe-inline'; connect-src *; img-src * data: blob:; font-src 'self'; media-src * blob:; script-src 'self' 'wasm-unsafe-eval' https://platform.twitter.com https://embed.tidal.com https://challenges.cloudflare.com;
Content-Security-Policy: default-src 'self'; manifest-src *; child-src 'none'; worker-src 'self'; frame-src https://youtube.com https://www.youtube.com https://platform.twitter.com https://embed.tidal.com https://w.soundcloud.com https://www.mixcloud.com https://open.spotify.com https://player.twitch.tv https://embed.music.apple.com https://embed.wavlake.com https://challenges.cloudflare.com; style-src 'self' 'unsafe-inline'; connect-src *; img-src * data: blob:; font-src 'self'; media-src * blob:; script-src 'self' 'wasm-unsafe-eval' https://platform.twitter.com https://embed.tidal.com https://challenges.cloudflare.com;
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

View File

@ -75,11 +75,13 @@ export class DefaultConnectionPool extends EventEmitter<NostrConnectionPoolEvent
this.#log("%s have: %s %o", c.Address, s, id);
if (this.#requestedIds.has(id)) {
this.#log("HAVE: Already requested from another relay %s", id);
// TODO if request to a relay fails, try another relay. otherwise malicious relays can block content.
return;
}
this.#requestedIds.add(id);
if (await this.#system.eventsCache.get(id)) {
// TODO better local cache / db check
// is this performant? should it be batched?
const alreadyHave = await this.#system.cacheRelay?.query(["REQ", id, {ids: [id]}]);
if (alreadyHave?.length) {
this.#log("HAVE: Already have %s", id);
return;
}