I want a relay implementation that fully supports #outbox so I don't have to code it in the client.
Clients connect to these single swappable proxies assuming the tradeoff: increased bandwidth/battery efficiency and a push toward more decentralization via outbox, at the cost of increased trust in the operator.
At this point Nostr suffers more from bad user experience than potential censorship, which would be short lived anyway. Tradeoff makes sense to me.
Does this exist or it needs to be created? Would an additional spec be required?
#asknostr #devstr
Login to reply
Replies (11)
That looks like a personal relay
this is inevitable, we could also have a relay feed with personal instruction scanning nostr for things of our personal interest, ie personalized nostr algorythm
nostr is about self hosting, starting from this predicat fixes many of the current nostr issues
View quoted note →
you could use an additional parameter in a req frame for this proxy relay.
instead of just having [reqid, request], you would have [relayurl,reqid,request]
the relay proxy manage connections for you and your client can drop the same logic (almost) but connect to just one relay.
response should also have the relayurl, so the client can tell which relay connected correctly. needs auth etc.
the problem for this approach is the too many concurrent req error. if your proxy serve too many concurrent user at the same time.
this is fine if each user use their own proxy, ie self host.
I am working on something like this for Nostr.land. I am planning to release a spec that should be relatively easy to use.
I could offer it as a service that is public (or as a private service for your specific application) but I would need some funding for the hosting of that.
It's an interesting idea, that you could build with the next release of rely.
You'll be able to use the OnAuth hook to load resources for a specific client after it auths with a pubkey.
So you can load or fetch events from his follows/ relay list and whatnot.
i've been on team "client connects to one personal relay that then does all the other work" for a while.
i come from a background of building personal servers, so i have a bias here. i've experieneced first hand the power of having an extremely powerful and massively responsible single personal server + an infinite number of super light edge clients that offload all the work and trust to that server. when it is fully yours, you can trust it entirely. this really changes everything - including the worries about nsec safety.
bonus point: your server can even serve your edge device all the client code it needs.
future bonus point that will sound insane to most people but it is in development: your personal server is a single "logical device" that is actually spread across many physical devices, including your phone, the cloud, your home. an omni-present, device-agnostic, cryptographically-identified virtual machine.
View quoted note →
Haven is definitely a personal relay, and Haven Kit is a nice GUI for configuring it, built to be easy for anyone to run on an Umbrel. Very cool project, but definitely not what you are talking about.
That said, I wouldn't mind seeing what you are talking about get added to Haven, as it would make the relay about the only thing each user should run for themselves. Haven is already effectively four relays in one, plus a Blossom server. Add the ability for the public inbox relay to pull in all notes from the owner's follow's relays, and it starts acting more like what you are looking for.
Maybe that is better left to a separate relay implementation, rather than bundling it in with Haven? I don't know.
You probably want something a bit more sophisticated than just, "Fetch all notes from the owner's follows, using their published outbox relays to find them," though. Something which can more dynamically fetch notes depending on what user is making the request, if I am understanding correctly. I think something like that would be better done as a caching relay, similar to what Primal has done, rather than as a relay that actively fetches notes from other relays upon request.
Looking forward