when i run a greedy algo to collect all my 817 follows relay lists and then combine them into 100 filters per req across 71 relays I can cover 2 relays per follow at about 92% coverage.

then i can tell the relay to stream from these, open it with jumble and set it as my inbox to gather replies from other outbox compat clients while optionally filtering with a brainstorm WOA and lightning captcha for spam prevention.

since it's physically on my local network, but using a wireguard proxy for it's public IP i have a local cache and it's super fast.

#outbox #renegade #selfhosted #userError

we ride.

Reply to this note

Please Login to reply.

Discussion

100 pubkeys in one filter i mean, since nostr revolted and only supports one filter per req supposedly. (strfry obvs can do more)

NFDB supports multiple as well!

only exception is do not mix ids and not-ids

yea, i think it was one of those standards that never caught on except in the NIPs and possibly on newer relay implementations that paid attention to the new nip changes.

you can mix them but IDs are the narrowest filter and only the IDs search is done because it wouldn't even matter if any other criteria matched if the ID doesn't match. in processing you just shortcut and only process IDs and check that first so it precedes the rest.

logically any ID criteria supersedes any other because in a filter, each field, ids, authors, tags, etc, has to have one match, so if you have 3 different top level fields in the req, then every result matches all three tests. if there is any IDs in there, then a match on one is a match on the whole group. the general policy that relays have is they just ignore the other fields. you *could* not-ignore them but then you get the side effect that unless the specified events with those IDs also have match on the others then they would be excluded, and probably the dumb client dev is wondering why when they ask for IDs they don't get all of them.

so, yeah, fuck those stupid people. give them the IDs and make anything in IDs mean IDs only. the opposite arrangement is illogical.

No revolting with Nosflare. There are no restrictions on filters in REQs. If it detects a REQ with filters arrays of more than 50 values, it'll use chunking to better handle the querying to the D1 database. When results from different filter chunks are merged, events are automatically deduplicated by their ID. Probably less efficient, but I wanted to ensure there was complete dataset for REQs.

938 relays 🤞

Do you have the code for this? I've been working on a simple outbox model myself and I'd be interested to see how yours works

i do, but i havent published it anywhere yet.. i can let you know when i do, it basically just does what i described in the note.