Inflate redundancy when few values are being requested

This commit is contained in:
Jon Staab
2024-04-03 13:01:51 -07:00
parent 94f6e676a7
commit 6220cd152c
4 changed files with 41 additions and 19 deletions
+8 -2
View File
@@ -1,7 +1,7 @@
import type {Event} from 'nostr-tools'
import {Emitter, randomId, groupBy, batch, defer, uniq} from '@coracle.social/lib'
import type {Deferred} from '@coracle.social/lib'
import {matchFilters, calculateFilterGroup, combineFilters} from '@coracle.social/util'
import {matchFilters, calculateFilterGroup, mergeFilters} from '@coracle.social/util'
import type {Filter} from '@coracle.social/util'
import {Tracker} from "./Tracker"
import {Connection} from './Connection'
@@ -82,7 +82,7 @@ export const mergeSubscriptions = (subs: Subscription[]) => {
const mergedSub = makeSubscription({
relays: [relay],
timeout: callerSubs[0].request.timeout,
filters: combineFilters(callerSubs.flatMap((sub: Subscription) => sub.request.filters)),
filters: mergeFilters(callerSubs.flatMap((sub: Subscription) => sub.request.filters)),
})
for (const {id, emitter, tracker} of callerSubs) {
@@ -154,6 +154,12 @@ export const mergeSubscriptions = (subs: Subscription[]) => {
}
}
// console.log(
// `Starting ${mergedSubscriptions.length} subscriptions on ${uniq(mergedSubscriptions.flatMap(s => s.request.relays)).length} relays`,
// uniq(mergedSubscriptions.flatMap(s => s.request.relays)),
// ...mergeFilters(mergedSubscriptions.flatMap(s => s.request.filters)),
// )
return mergedSubscriptions
}