It would be cool to see relays that also act as proxies to all other known relays.

This way, rather than syncing *all* data with all other relays and using a lot of bandwidth/space, it would get a request from a client to look up posts from a particular user, and it would then ping all other relays for that users posts.

Is this possible?

Reply to this note

Please Login to reply.

Discussion

How's your father's dick taste?

nostr.wine already does this with it's filter relay (filter.nostr.wine)

yeah great example, something like that! if in theory, all relays had this functionality, wouldn’t this mean that clients could connect a user to any handful of relays at random, and they’d get the coverage they need?

This is by design not part of the protocol, because it has a centralizing aspect to it. There is no global view of everything on nostr, just like there is no global view of everything on the internet. Relays can do this, but it will (and should) remain a custom, optional solution.

Proxies are great, but the problem to solve there is the IP based banning, which can be only solved by paying for reading a small amount of money and delegation.

What I'm doing (rbr.bio) is a way to at least know where to read from: you can get the metadata or even just the write relays (just added now as JSON :) ).

It means that the clients just have to read from a few of the write relays to get the data.

Ah that’s clever, def going to experiment with rbr.bio later.

There’s so much potential for this kind of “indexing” service to greatly improve the nostr experience for casual non-technical users.

Are you working on putting it into @npub1wnwwcv0a8wx0m9stck34ajlwhzuua68ts8mw3kjvspn42dcfyjxs4n95l8is? Or what kind of experiment are you thinking about?

My top priorities are:

- Data freshness (right now data is about 1 hour old)

- Data availability (some of my followers seem to be missing, I don't know why)

- Latency (already have an EU server at eu.rbr.io, I did't set up load balancer yet)

- Example on how to use it / putting into RelayPool library for easier integration ito clients

#[4]