Replying to Avatar Cyph3rp9nk

Tips for Relays.

Forget about having a thousand and one relays.

The first option is to pay for nostr.wine, it allows you to use the filter.nostr.wine filter. The filter works both requesting events from other relays and sending events to other relays. In case you want to send events to other relays you have to add the relay with the following syntax:

wss://filter.nostr.wine/REPLACE_WITH_YOUR_NPUB?broadcast=true

Reading list:

wss://relay.damus.io

wss://nos.lol

wss://relay.current.fyi

wss://brb.io

wss://nostr.oxtr.dev

wss://relay.nostr.bg

wss://no.str.cr

wss://nostr.mom

wss://nostr.zebedee.cloud

wss://relay.plebstr.com

wss://offchain.pub

Writing list:

wss://relay.damus.io

wss://nos.lol

wss://relay.snort.social

wss://nostr.oxtr.dev

wss://relay.nostr.bg

wss://nostr.fmt.wiz.biz

wss://nostr.mom

wss://nostr.zebedee.cloud

wss://no.str.cr

wss://relay.plebstr.com

wss://offchain.pub

The next special relay is relay.nostr.band. This relay reads events from all relays and applies a spam filter, in the case of writing you only write to relay.nostr.band but it is a good complement to add content to relay filter.nostr.wine as it only requests events from your contacts and your contacts' contacts. It is not clear to me from which relay is requesting the events as the code is not available.

And finally the relay nostr.mutinywallet.com. This relay uses blastr which is a nostr cloudfare worker proxy that publishes to all known relays. Basically what it does is to read the list of online relays from nostr.watch and all events are queued to be executed in batches by another worker that rotates every 30s if there is an event queued, or once a certain amount of events are queued. In this case the relay is write-only.

In short, your relays could be reduced to 4:

wss://nostr.wine

wss://filter.nostr.wine/REPLACE_WITH_YOUR_NPUB?broadcast=true

wss://relay.nostr.band

wss://nostr.mutinywallet.com

With them you save bandwidth and battery, actually filter.nostr.wine in write mode and nostr.mutinywallet are redundant, but I put the two because nostr.mutinywallet.com has more amplitude because it publishes in all the online relays of nostr.watch and also because it has high availability in case of failure of any of the two relays mentioned above.

The same case is applicable in the case of reading for filter.nostr.wine and relay.nostr.band.

The problem is, doing this will cause everyone to have to do it, relays to fill up even more with duplicate messages and waste bandwidth. Normal clients will be swamped UNLESS they use these relay aggregators. Then they will all connect to the aggregator(s), then we're centralized. I hope we can come up with better solutions before that happens because the freedom nostr gives us is to move to other relays if we get kicked, and for anyone to run a low-cost node in the system (decentralization/anti-censor). Currently the source code for aggregation is all closed source, so you're supporting a system that will ultimately either use you as the product, cost a lot more than it does now, or will fail. The only open-source part of this list is blastr, which is a write-only blast to all known relays (not an aggregator).

Reply to this note

Please Login to reply.

Discussion

I totally agree with you, this solution I have proposed is to avoid headaches with relays and save on battery and data, but the solution is the Gossip model that solves all the problems cited by you.

The ideal would be for me to have my private relay and store my notes there and the client would be smart and be able to fetch my notes from my relay, this would make the network much more scalable.

Unfortunately at the moment except for gossip no one is going in this direction.

https://github.com/mikedilger/gossip

I think I read somewhere coracle is doing gossip now too.. Just a matter of time. I have a feeling, aggregators might be SOL once Auth is implemented for relays. Even a free auth, like solve a captcha or etc and all of a sudden this model of leaching off the relays doesn't work so well.