The blastr code is very straight forward. It queries nostr.watch API for online relays and simply sends the notes to them using queues.

Any additional propagation is people running streams between relays (very common, even by non relay operators it seems), negentropy syncs, and that the popular clients when reacting or commenting republish the referenced note to their relay list (which may include blastr). I would be curious to see how much of nostr has blastr in their relay list, but not curious enough to get off my couch.

Overall, with the amount of my events moving around to relays I don't know about, I have to use blastr periodically to set the record straight on important stuff like relay list, profile. Or many clients that use hardcoded relays or search relays get confused, and likely so does anyone wondering where to find or zap me.

Reply to this note

Please Login to reply.

Discussion

Yes, I'm happy with my small, high-signal relay. It's essentially human-curated over my follows.

I occasionally used a broadcaster to rsync, but I think it's unnecessary.

I thought my profile data and relay data weren't propogating, for instance, but it turns out to be bugs in some clients.

I actually have very wide reach over theforest relay.

We tested it on NADAR and every note is widespread, within seconds.

My browser starts timing out, after about 20 relays, but you get the general idea.

https://nadar.tigerville.no/

You do yes, earlier I was looking at your logs to see if I could find why blastr wasn't making it and there were like 5-6 negentropy synchronizers latched on there 😂 soh popular and yet, a nice forest.

I think a lot of people have added it, and they get so much traffic and responses from it that they don't even realize that there's a whitelist.

I hope you're ready for some serious hellthreading. 😂💪🏼

Thank you both, this explains a lot.

These are the propogation results for one note from my test user being sent from Nostrudel solely to theforest, within 10 seconds.

Note that my browser gives up after about 20 results, so it's probably underreporting.

https://njump.me/nevent1qvzqqqqqqypzplfq3m5v3u5r0q9f255fdeyz8nyac6lagssx8zy4wugxjs8ajf7pqydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcqyq0qv5n0uufrlcqt6072sygmat9zyn0adm9ytvr7p2j864u4z7cfxtkcr57

A couple of minutes later and njump and noswhere added to the list.

Finally! Someone who appreciates a meaningful test report.

Thank you, Josua #[4]!

Absolutely! Hopefully there will be more.

And since you’ve got your own relay now, there’s one test I’d very much like to see:

What filter settings do you receive? How well time-delimited are they? Do clients set created_at?

I can't see that, I think, Cloudfodder would know.

#[4]

Not logging those

i have to prune back how much my relay logs but there's no reason it can't be ephemerally logged so you can have a poke at it, like, watch it realtime

One question to this data would be whether it’s worth for relays to page events by date.

oh yeah, this is a bit of a gap in NIP-01 filters spec... currently it's undetermined behaviour, if you ask for a limit of requests or there is more that match your filter than it will deliver (most relays hard limit to 500 per filter) then how do you know if there's more? it's a guessing game, the only way to avoid this problem is to set big limits and make tighter boundaries on the request filter (times or numbers of kinds etc)

i think that the relay should send one last message tied to a subscription indicating "..." when the filter stops before the data does, is just a matter of even running one more than the limit and if there is another, then send "..."

the ordering of replies implicitly tells you how to form a request, as usually it's based on when the event was received and so you just repeat the query but bring the "since" timestamp to the last one found to be sure to be sure

Yeah, blastr is useful for stuff like kind 0, 3, 10002, and 5