From 5008178c3513b7f8b4c46ff3f5b19fb650ee26f2 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Mon, 6 Oct 2025 21:40:52 +0200 Subject: [PATCH] tried to speed up relays --- src/components/ReplyNoteList/index.tsx | 16 ++++++++-------- src/services/client.service.ts | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/components/ReplyNoteList/index.tsx b/src/components/ReplyNoteList/index.tsx index 99e7dbd..06d8c50 100644 --- a/src/components/ReplyNoteList/index.tsx +++ b/src/components/ReplyNoteList/index.tsx @@ -219,21 +219,21 @@ export default function ReplyNoteList({ index, event, sort = 'oldest' }: { index setLoading(true) try { - const relayList = await client.fetchRelayList( - (rootInfo as { pubkey?: string }).pubkey ?? event.pubkey - ) // Include user's mailbox relays for better reply discovery const userRelays = userRelayList?.read || [] - const relayUrls = Array.from(new Set(relayList.read.concat(userRelays).concat(FAST_READ_RELAY_URLS))) const seenOn = rootInfo.type === 'E' ? client.getSeenEventRelayUrls(rootInfo.id) : rootInfo.type === 'A' ? client.getSeenEventRelayUrls(rootInfo.eventId) : [] - relayUrls.unshift(...seenOn) - // Deduplicate the final list including seenOn relays - const finalRelayUrls = Array.from(new Set(relayUrls)) + + // Optimize relay selection: prioritize seen relays, then fast relays, then user relays + const finalRelayUrls = Array.from(new Set([ + ...seenOn, // Highest priority: relays where the event was seen + ...FAST_READ_RELAY_URLS, // Second priority: fast, well-connected relays + ...userRelays // Third priority: user's mailbox relays + ])) const filters: (Omit & { limit: number @@ -284,7 +284,7 @@ export default function ReplyNoteList({ index, event, sort = 'oldest' }: { index } const { closer, timelineKey } = await client.subscribeTimeline( filters.map((filter) => ({ - urls: finalRelayUrls.slice(0, 5), + urls: finalRelayUrls.slice(0, 8), // Increased from 5 to 8 for better coverage filter })), { diff --git a/src/services/client.service.ts b/src/services/client.service.ts index 42fe356..bac915c 100644 --- a/src/services/client.service.ts +++ b/src/services/client.service.ts @@ -418,7 +418,8 @@ class ClientService extends EventTarget { ) { const newEventIdSet = new Set() const requestCount = subRequests.length - const threshold = Math.floor(requestCount / 2) + // More aggressive threshold for faster loading - respond when 1/3 of relays respond + const threshold = Math.max(1, Math.floor(requestCount / 3)) let eventIdSet = new Set() let events: NEvent[] = [] let eosedCount = 0