Recently I decided subscribe to a paid nostr relay (kollider.xyz) and since then I have been trying to figure out whether the paid relay service is worth the sats. That is, it is delivering a good service. But that automatically leads to ask: what a good service stands for? How is measured? Deciding whether a relay is providing a good service is just an instance of the more general questions:
  • What are the possible metrics for relay performance?
  • Introduce a partial ordering on the space of relays: whether relay_a >= relay_b is true (relay_a has better performance than relay_b).
One thing you can try is sort of a functional test. In Amethyst, turn off all the default relays and turn on just the paid one. Do this with a new account and an established account. When I did this I found that paid relays tended not to have the breadth of messages/accounts represented but it was interesting seeing smaller slices of the public note corpus.
reply
Thank you! Your reply is interesting but it deals only with measuring relay properties manually, not with relay performance ordering. Do you have any thoughts on that?
reply
Other things to measure include ping, ttfb, and time to receive back a note I post.
The time to receive back a note is most useful for ranking aggregators like filter.nostr.wine.
But, I don't find lag to be too big an issue so the question I'm really interested in is if I want to connect to n relays, which will allow me to see notes from the broadest set of users with lowest latency? To measure that you'd have to connect these things for a while and see what the overlap is in terms of users. Users also post their relays I believe so that's another data source.
reply
"... the question I'm really interested in is if I want to connect to n relays, which will allow me to see notes from the broadest set of users with lowest latency?"
And that makes me again wonder: how are you going to decide whether relay_a has the broadest set of users with lowest latency than relay_b? Is there an algorithm to accomplish this task?
reply
Latency is per relay so I guess there'd be an exponential falloff. 100ms vs 200ms doesn't matter but 200ms to 300ms means the latency is starting to affect things. Maybe it can be statistically derived based on the population of relays you see. The bottom 10 or 20% for latency gets heavily penalized.
The other part of the score is log of unique users. Balance those two effects and I suppose you're good for ranking.
reply
reply
I already knew this and other sites. My question is how to figure out what those numbers do mean.
reply
Besides the performance (latency, load speed, etc) I would propose if the nostr posts that you see from using a private relay are more appropriate and aligned to your taste/things you like than using a free one. Not sure if this would require changes in the way the timeline shows but essentially your experience would be better as you would be seeing more interesting things from people you follow
reply
"what a good service stands for?"
For me it start with feedback from relay users in the first place. I really like the concept how Coracle has integrated reviews for relays for example. This is done with notes kind 1985 (a label) from NIP-32.
After this feedback compoment comes the performance (which are aggregated on https://nostr.watch for example). You could combine those two aspects to decide if the relay is giving a good service.
reply