I heard that there is an ongoing movement now for people that truly care about decentralization and censorship-resistance to only publish to small relays.

I believe nostr:nprofile1qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uq3zamnwvaz7te3xsczue3h0ghxjme0qqsgydql3q4ka27d9wnlrmus4tvkrnc8ftc4h8h5fgyln54gl0a7dgsc2k8v3  and nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgewaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qqsqfjg4mth7uwp307nng3z2em3ep2pxnljczzezg8j7dhf58ha7ejgz0easp  will adhere, but while they don't at least nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgewaehxw309a5x7ervvfhkgtnwdaehgu339e3k7mf0qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3qamnwvaz7tmwdaehgu3wd4hk6tcqyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jy5uqf05 , nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgnwaehxw309ac82unsd3jhqct89ejhxtcpz9mhxue69uhnzdps9enrw73wd9hj7qpql2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqgh57r7 , nostr:nprofile1qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3kamnwvaz7tmjv4kxz7fwdehhxarjd93ksetn9ehhyee0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqutx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s820ky4  and nostr:nprofile1qyf8wumn8ghj7mn0wd68yv339e3k7mf0qyw8wumn8ghj7cmgwf5hxarsd9kxctnwdaehgu339e3k7mf0qywhwumn8ghj7mn0wd68ytndw46xjmnewaskcmr9wshxxmmd9uqzphtxf40yq9jr82xdd8cqtts5szqyx5tcndvaukhsvfmduetr85ce2wlgd0  have already started.


Also the people who should be reading this note won't see it, so what was the point?


hahahahhahaa

the ultimate circle-jerk


Do small relays become big relays? New here..


I'm connecting to one relay, that you don't publish to or have permission on, and I'm still reading these notes. I feel like that's got to count for a level of decentralization.


It's true, but also in nostr your reach is unavoidable. Clients will faithfully propagate the notez 🎵🎶 and somehow nostr.band uses telepathy to find some relay it never should have had a reason to see 😂


mainly because clients don't fucking work


Eventual consistency


I didn't see this

Thanks


Who will be " Relays  Associations labor Union Commrade /Chairman/President " ? Jack or fiatjaf


Yes join us in glorious filth and wasted energy, join us PABZ


Always ADHERE to Presidents ORders


Elastic is design can handle more connections

IF BECOMING BIG = MEANS CENTRALIZED hence avoid that relay


Has anyone seen a list of up-and-coming relays that we could start publishing to?

I'm happy to add a few on!

#asknostr #nostr

nostr:note1dc2drrmdmlkcyna5kkcv8yls4f8zaj82jjl00xrh2tmmhw3ejsmscu6nft


Be ungovernable!


I'm still trying to figure out relays. Is the ultimate goal/solution to just have many more people running their own relays? If so, running relays would need to be A LOT easier, in my opinion.


I'm in!


Nobody can see this reply watch


i’ll do it


Those will just become the new “big relays” soon then… just moves the goalposts. It doesn’t solve the problem.

I think the current model mixed with clients as relays & outbox model as the fallback for finding the relays you need to sync with is key. 🔑
nostr:note14qapnc4hk6hwpwf9f6f2ja33d55rqn0nd8jshnx55d4yz5l0nucs3nlrf3


I’m just gonna try to build it. No use in petitioning everyone, just like with GitNestr. One thing at a time though…

If it works well people can copy it to their clients. I’m sure we’ll run into hiccups along the way. Only way to find out is by coding it & experimenting first-hand.


Summary:
nostr:note1f34555yl05xycj8cn0dm755rgktxyesp63tgcmqtwzl0ae0a8j5sgfmdnx


how do you know if a relay is big or small?


mid


until you repost your first trump video to hate on it and then smurfville starts all over again... but for a brief moment. 🎈

instead of what you hate, what is interesting or original -


Are we going to the cheapest relays that are charging sats? Or Free ones? Or Both! 😏

Currently using https://nostr.watch to have a look around. Cya's soon!


What is considered small? I’m about as useful with tech as captain caveman but have my little Linux machine arriving next week finally and was gonna set up a relay (sorry…. Try to). Worth it?


Wine is my biggest relay.

You can see the volume/relay here:
https://stats.nostr.band/#relay_users


Even wine is completely dwarfed by stuff like nos.lol


who should be reading this?


MfW I realize that nobody can see this.
https://media1.tenor.com/m/PN6LWn4j7NoAAAAC/zooey-deschanel-new-girl.gif


Anyone I follow can add theforest.nostr1.com as a relay. Best relay content. Hosted by nostr:nprofile1qyd8wumn8ghj7mn0wd68ytn5dpjhxctdv43kzapwd9hj7qgmwaehxw309a6xsetxdaex2um59ehx7um5wgcjucm0d5hsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qqs8eseg5zxak2hal8umuaa7laxgxjyll9uhyxp86c522shn9gj8crsx9cel5  .


I heard that there is an ongoing movement now for people that truly care about decentralization and censorship-resistance to only publish to small relays.

I believe nostr:nprofile1qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uq3zamnwvaz7te3xsczue3h0ghxjme0qqsgydql3q4ka27d9wnlrmus4tvkrnc8ftc4h8h5fgyln54gl0a7dgsc2k8v3  and nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgewaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qqsqfjg4mth7uwp307nng3z2em3ep2pxnljczzezg8j7dhf58ha7ejgz0easp  will adhere, but while they don't at least nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgewaehxw309a5x7ervvfhkgtnwdaehgu339e3k7mf0qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3qamnwvaz7tmwdaehgu3wd4hk6tcqyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jy5uqf05 , nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgnwaehxw309ac82unsd3jhqct89ejhxtcpz9mhxue69uhnzdps9enrw73wd9hj7qpql2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqgh57r7 , nostr:nprofile1qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3kamnwvaz7tmjv4kxz7fwdehhxarjd93ksetn9ehhyee0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqutx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s820ky4  and nostr:nprofile1qyf8wumn8ghj7mn0wd68yv339e3k7mf0qyw8wumn8ghj7cmgwf5hxarsd9kxctnwdaehgu339e3k7mf0qywhwumn8ghj7mn0wd68ytndw46xjmnewaskcmr9wshxxmmd9uqzphtxf40yq9jr82xdd8cqtts5szqyx5tcndvaukhsvfmduetr85ce2wlgd0  have already started.


Thx, just did 🙏🏼


this is good. thanks for doing the analysis which lead to this.


Onward 🫡


https://x.com/jack/status/1770567499018379268?s=20

Ask Musk to repost this to, do it publicly ;)


You have been quoted, message is seen if someone is willing to carry it further.


Did you unfollow me?
https://consequence.net/wp-content/uploads/2020/07/Clueless-Harsh.gif


If it weren't for band, I'd be completely invisible.


Current #nostr controversy.  Which side will you choose. Decentralize and continue to fight censorship or going back to the same data hoarding digital giants we were running from. #relaysize #gossip
nostr:nevent1qqsxu9x33akalmvzf76ttvxrj0c25n3wer4ff0hhnpm49aamhguegdcpz4mhxue69uhhqatjwpkx2un9d3shjtnrdaksygpm7rrrljungc6q0tuh5hj7ue863q73qlheu4vywtzwhx42a7j9n5psgqqqqqqsjujeqd


Yay, we're follow frens again. ☺


Cant achieve decentralization through good will, only good incentives


Where is a list of small relays?
And how to discriminate good / bad relays in general, regardless the size?


REQUEST UNCLEAR.

MAYBE WE SHOULD RIP A DISPATCH TO DISCUSS THIS.


Let’s hear this discussion!


DO IT


YES, THIS STUFF IS VERY IMPORTANT


Coracle lists relays and shows how many people you follow are on each. It also drops the top few to encourage network decentralization.


I pushed for this early on, butt the purple cats kept saying it was stupid and it will make the network worse.  Are we still using strfry?


That's... that would be great. I see nothing here 🤔

https://m.primal.net/HmzP.png


Scroll down to "other relays"


I would like to be able to publish to > 100 relays. Can this ever be possible without using a blastr?


-dle class


No, but why? Do you want to pay 100 relays to hold your notes? Broadcast is digital squatting, made possible only by taking advantage of hobbyist relay operators.


Yeah, blastr wrote my German-language notes someplace in deepest Siberia, or something.


Server operators should decisively decide what they will store, and what they will actually relay to other servers.  One way to reduce server operating costs is to reduce the excessive amounts of network bandwidth consumed on retrieving duplicate notes across multiple servers.  This is going to break down if users have to alacarte subscribe to multiple relays just to see the posts in their connection circles


We need broad adoption of strfry negentropy inter-relay note rectification protocol for this to work.

We need mid and small relays. Smalls talk to a few mids to limit data and rectify a smaller set of notes follows/followers of follows/followers and maybe some subscribed hash tags. Mids talk mainly to other mids and a unique groups of smalls and rectify a larger set of the follows/followers of follows/followers and hash tags of connected small relays.

I think a system with built in economics will create an incentivized, sustainable, durable, and decentralized network. Ecash attached to notes signed to relay keys is a possible economic model. Smalls collect ecash from users and pay to mids for updates. Network congestion could lead to these fees becoming dynamic. The alpha in the fees becomes the operational budget of small and mid relays. Federations of mids could group into fedimints or run their own cashu mints for settling balances and allowing lightning withdrawals.


Onward 🫡


How can you tell a relays size?


Hey, me too.


It depends on what you mean by "size". There's WoT size, which is where more people you follow post to a given relay:

https://i.nostr.build/Q778K.png

There are also relay monitoring systems like nostr.watch that are working on a system for reporting how many active users are on a relay, along with other metrics.


No, very few people should be running relays. We have probably 10x more relays than we need right now. The point is that if one relay goes down or bans you, you have at least one other relay that can continue to serve all your stuff. This doesn't require self-hosting.


Self-hosting certainly doesn't hurt


> very few people should be running relays. We have probably 10x more relays than we need right now

How does one calculate the optimal number of relays?


tor provides government resistant backup
nostr:note1lrswfs4hncwk30fq75urdlhv4jgy50d97d247tvx7nhcx3r0wd7qf7h0qx


That's a great question, I don't know. Maybe it can't be answered, because it's dependent on a whole bunch of social factors, like how likely relay runners are to censor users, or what a given user's risk profile for censorship looks like.

In theory, 2 relays for the entire network is enough. But that introduces scaling issues and the possibility for them to cooperate in banning someone. My best guess is that at the network's current size, 5-10 hubs is probably enough, plus relays that support special use cases, like authenticated communities and archival relays. Nerds will run their own relays, which is fine, but it doesn't really benefit anyone as long as censorship or relay failure is only occasional. I guess what's most important is that 1. there are backups of important data, and 2. it's easy to create a new relay when one is needed.


I think a big part of the problem is that tech giants centralised TCP/IP to a point that big hosting companies can easily take part in censorship under the guise of regulatory pressure.

Self-hosted relays that are open are what we need - Better yet, nostr-client-intergrated-relays with meek or something of the like. No point in having multiple relays hosted by a singe company - That's still a high degree  of centralisation, even if spread around the globe.

Can't remember which one it was, but I recall a desktop Nostr app with a built-in relay service, going over a tor tunnel. I have a feeling that's where Lume announced it was headed in the future - And I think that's the right step to go.

Nostr on websites is great from an accessibility perspective (hail PWAs I guess), but accessibility and censorship-resistance are not the same thing. I'd say anyone using nostr solely via websites is setting themselves up for trouble, at some point, somewhere, for some reason.


I think you're right that DNS, TLS certificates, and ISPs are all chokepoints. Maybe something like i2p bridges or something could overcome that. But that's not specific to nostr, so we have the help of the broader freedom tech community available to us.


enforced "mid" is fascism. and profoundly uninteresting. in my opinion -


How do you feel being such a hero?


Heavy is the head that wears the crown


YES PLS


I'm down to listen in. Let's do it.


What’s your relay list?


I’d be interested.


That’ll do it.

Thanks, Hodlbod.


YES


I wrote it.


What I meant is that my browser doesn't like 100 websockets I think.


And my phone... sheesh


Like... a.... blastr?


Btw, since I think I was first (really not sure and idgaf!), can I reappropriate the original name again?

multiplexer


Is there a relay that's also a relay proxy? Like, I throw the relay some sats and it opens those 100 websockets with appropriate filters. Maybe also a blastr? fan in: left hand. fan out: right hand. Fan in... fan out... fan in...


Any relay recommendations for noobs who want to understand how to choose?

https://media.tenor.com/SSkPUSsG6iUAAAAC/why-penguin.gif


client could also keep publishing a mempool to many relays rotating through them while the user keeps doomscrolling or something...


Coracle has a list of relays ranked by how many people you follow publish to them. nostr.watch might also be useful.


Onward 🫡


Yes please!


I heard that there is an ongoing movement now for people that truly care about decentralization and censorship-resistance to only publish to small relays.

I believe nostr:nprofile1qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3wamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet59uq3zamnwvaz7te3xsczue3h0ghxjme0qqsgydql3q4ka27d9wnlrmus4tvkrnc8ftc4h8h5fgyln54gl0a7dgsc2k8v3  and nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgewaehxw309aex2mrp0yh8xmn0wf6zuum0vd5kzmp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qqsqfjg4mth7uwp307nng3z2em3ep2pxnljczzezg8j7dhf58ha7ejgz0easp  will adhere, but while they don't at least nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgewaehxw309a5x7ervvfhkgtnwdaehgu339e3k7mf0qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3qamnwvaz7tmwdaehgu3wd4hk6tcqyztuwzjyxe4x2dwpgken87tna2rdlhpd02va5cvvgrrywpddnr3jy5uqf05 , nostr:nprofile1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgnwaehxw309ac82unsd3jhqct89ejhxtcpz9mhxue69uhnzdps9enrw73wd9hj7qpql2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqgh57r7 , nostr:nprofile1qyfhwumn8ghj7ur4wfcxcetsv9njuetn9uq3kamnwvaz7tmjv4kxz7fwdehhxarjd93ksetn9ehhyee0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqutx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s820ky4  and nostr:nprofile1qyf8wumn8ghj7mn0wd68yv339e3k7mf0qyw8wumn8ghj7cmgwf5hxarsd9kxctnwdaehgu339e3k7mf0qywhwumn8ghj7mn0wd68ytndw46xjmnewaskcmr9wshxxmmd9uqzphtxf40yq9jr82xdd8cqtts5szqyx5tcndvaukhsvfmduetr85ce2wlgd0  have already started.


Don’t forget to tell the plebs how to fund stuff so it doesn’t all just go quiet.


Find!


1. “Use nostr its decentralized”.
2. “Only use small relays on nostr if you want real decentralization”
3. “Only use small relays on nostr that you know …”


LET'S MAKE IT HAPPEN.  nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 tá confuso pra caralho esse bagulho 🫡


Could there be a relay list that appears when we try to add relays while setting the network of a client?!


Thank you! 🫶


⚡ LIVE FREE ⚡


https://nostr.watch is what I used. Used a bunch paid and bunch free. Tried to use different countries as much as I could.


Thanks!


That is so cool 👌🏽


We're all introverts and moving to our own private relays.


I thought we had agreed to call it "outbox"!


The relay does not matter. If want to post "forbbiden" content Just use tor before you real connection and thats it.


Time response is a good meassure


Fix it for you


*fixed


No, it isn't.


Thank you.


The last few days on developer nostr have involved quite a kerfluffle over the outbox model, blastr, banning jack, and many related misunderstandings. This post is an attempt to lay out my thoughts on the matter in an organized and hopefully helpful way.

# What's wrong with outbox?

It all started with a post from [jack](npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m) asking why more devs haven't implemented the outbox model. There are many answers to this question, not least having to do with there being two standards for user relay selections, and ongoing changes to NIP 65. But I don't want to talk about compatibility here.

nostr:nevent1qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hszymhwden5te0wfjkccte9enrw73wd9hj7qpq2uf488j3uy084kpsn594xcef9g9x3lplx4xnglf0xwghyw2n3tfqqnrm02

Mazin responded with some numbers which estimate how many connections the outbox model requires. Too many connections can become expensive for low-power clients like mobile phones, not to mention some privacy issues stemming from nosy relays.

nevent1qythwumn8ghj76twvfhhstnwdaehgu3wwa5kuef0qyv8wumn8ghj7cm9d3kxzu3wdehhxarj9emkjmn99uq3samnwvaz7tmrwfjkzarj9ehx7um5wgh8w6twv5hsqgrn7l6zj7ht6ruyk76vvvtkfs4xrhyzc3tm64l3eyfvd40y26sz0gshmunh

I have some [minor disagreements](nostr:nevent1qyvhwumn8ghj76r0v3kxymmy9ehx7um5wgcjucm0d5hszxnhwden5te0wpuhyctdd9jzuenfv96x5ctx9e3k7mf0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqxqjdcpdjn9fp958zuunzhk8ztce6kqg05wmwnq7j7y3w6u07n3nsfpeeuh) with Mazin's numbers, but I basically agree with his point — a purist outbox model, where a large proportion of nostr users run their own relays results in a high number of connections to different relays. I brought this question up late last year in my [interview with Mike Dilger](https://fountain.fm/episode/ALgeriqGnypw1Qhqvf5W) and in a conversation with fiatjaf, who convinced me that in practice, this doesn't matter — enough people will use a handful of larger hubs that there will be a good amount of overlap in relay selections between most pubkeys.

To articulate this more clearly: the goal is not "personal web nodes", which is a pipe dream the Farcasters and BlueSkys (BlueSkies?) of the world aim at, but a more pragmatic mix between large hubs and smaller purpose-built relays. These small relays might be outlets for large publishers, small groups, or nerds who also run their own SMTP servers and lightning nodes.

The point of the outbox model is that these small nodes be _possible_ to run, and _discoverable_ from the rest of the network so that we can preserve the censorship-resistant qualities of nostr that brought us here in the first place.

# Blast It!

It's no secret that I've long been a critic of Mutiny's blastr relay implementation. My main objection is that the blastr approach doesn't account for the hard limits involved in scaling smaller relays. If the goal is to cross-pollinate notes across all relays in the network, all relays will require the same size database, and contain all notes in the network. This works right now (sort of), but as the network grows, the relays running on a $5 VPS are going to have their disks fill up and will inevitably fall over.

nevent1qyvhwumn8ghj76r0v3kxymmy9ehx7um5wgcjucm0d5hszxnhwden5te0wpuhyctdd9jzuenfv96x5ctx9e3k7mf0qythwumn8ghj7un9d3shjtnwdaehgu3wvfskuep0qqs07jr9qx49h53nhw76u7c3up2s72k7le2zj94h5fugmcgtyde4j9qfrnwxj

Not only that, but the content breakdown on any given relay by default becomes an undifferentiated soup of "GM", chinese notes, bots, bitcoin memes, and porn. Blastr makes it impossible to run an interesting relay without implementing write policies.

Which is actually fine! Because that's always been true — servers that allow anonymous uploads always get abused. Tony is just helpfully pointing out to us that this is no less true of nostr relays. I only wish he could have waited a little longer before mounting his attack on the network, because lots of hobbyists are interested in running interesting relays, but the tools don't yet exist to protect those servers from unsolicited notes.

One other note on blastr — Tony at one point described blastr as a relay proxy. This is an interesting perspective, which puts things in a different light. More on proxies later.

# Ban Jack?

Here's a thought experiment: how might we actually "ban blastr"? @Pablof7z suggested to me in a conversation that you could configure your relay to check every note that gets published to your relay against the big nostr hubs, and if it exists on any of them to simply delete it. Of course, that would result in your relay being basically empty, and the hubs having all of your content. That's game theory for you I guess.

Another approach that was floated was to encourage users to only publish to small relays. In theory, this would force clients to implement outbox so users could still see the content they were subscribed to. Fiatjaf even [posted two identical notes](nevent1qydhwumn8ghj7un9d3shjtnhv4ehgetjde38gcewvdhk6tcprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hszymhwden5te0wp6hyurvv4cxzeewv4ej7qpq44nafdr27wwd0cgs29r2ddg7zz94gww2a8ym6uhf3p76h33uxj9ssn68l6), one to his personal relay, and one to a hub to see which would get more engagement. The note posted to the mainstream relay got 10x more replies and likes than the more obscure note.

nostr:nevent1qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qgmwaehxw309aex2mrp0yh8wetnw3jhymnzw33jucm0d5hszymhwden5te0wp6hyurvv4cxzeewv4ej7qpqdc2drrmdmlkcyna5kkcv8yls4f8zaj82jjl00xrh2tmmhw3ejsmsmp945r

Of course, this is thwarted by blastr, since blastr not only replicates notes posted to it, it also actively crawls the network as well. So the next logical step in this train of thought would be for hubs to encourage people to use small relays by actively blocking high-profile accounts.

nostr:nevent1qydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpzdmhxue69uhhyetvv9ujue3h0ghxjme0qyd8wumn8ghj7urewfsk66ty9enxjct5dfskvtnrdakj7qpqpjhnn69lej55kde9l64jgmdkx2ngy2yk87trgjuzdte2skkwwnhqv5esfq

This would of course never happen (Damus is one client that hasn't implemented NIP 65, and they also run the biggest relay), but it was a fun thought experiment. At any rate, the silliness of the suggestion didn't stop certain people from getting offended that we would "disrupt the free market" by "forcing" our opinions on everyone else. Oh well.

# Death to Blastr

In reality, even though blastr makes it a little harder to adopt outbox in the short term, its days are numbered. Eventually, relay operators will start to feel the pain of unsolicted notes, and will either shut their relays down or look for tools that will help them curate the content they host.

From my perspective, these tools take two forms — read protection and write protection. This is something I alluded to in my [talk at Nostrasia](https://www.youtube.com/watch?v=R-5DHymkfzw) last November.

Write protection is straightforward — already many relays have access control lists based on active subscriptions, invite codes, or just static whitelists that determine who is allowed to post to a given relay, or what event authors are represented there. This approach effectively prevents blastr from using relays as free storage, which is a huge improvement.

Read protection is more tricky, because anything publicly readable will be scraped by blastr and replicated to unauthenticated-write relays across the network. In most cases, this is ok, but there are use cases for relays to exist that host a unique collection of notes oriented around some organizing principle. Unfortunately, with blastr in action (or any scraper that might exist), the only way to do this is to actively protect proprietary content. There are a few approaches that can work to make this happen:

- IP-based access control lists
- AUTH-based access control lists
- Stripping signatures when serving events
- Storing and serving encrypted content

Each of these approaches has its own set of trade-offs. But depending on use case, any of them or a combination of them could work to allow relay operators to carve out their own piece of the nostr-verse. In fact, this is a big part of what Coracle is about — the [white-labeled version of the product](https://info.coracle.social/) confines certain notes to proprietary relays, with optional encrypted group support.

Enough of my polemic against blastr. Let's talk about how to make the outbox model actually work.

# Hints are pointless

Right now, clients that implement the outbox model rely pretty heavily on relay hints to find related notes — whether user profiles, reply parents, or community definitions. The problem with hints is that they are prone to link rot. Many of the relays that were set up a year ago when nostr took off are no longer online, and yet they persist in user relay lists, and in relay hints. These hints can't be updated — they are set in stone. What this means is that a _different_ mechanism has to be used to find the notes the hints were supposed to help locate.

Because of this, I've come around to the position that hints are basically pointless. They are fine as a stopgap, and might be appropriate for certain obscure and ill-defined use cases where relay urls are the most durable address type available. But they provide basically no value in supporting the long-term robustness of the network.

What are durable, however, are pubkeys. Pubkeys are available pretty much everywhere, except in event id hints — and there is a [proposal](https://github.com/nostr-protocol/nips/issues/1101#issuecomment-2001940642) in the works to add a pubkey to those too. The cool thing about pubkeys as hints is that once you have a pubkey, all you need to do is find that person's kind 10002 inbox/outbox selections, and you should be able to find any note they have published.

This goes with the caveat that when users change their relay selections, or rotate their key, they (or their relays) should be sure to copy their notes to the new relay/pubkey.

The question then is: how do I find a given pubkey's relay selections?

There are already several mechanisms that make this reasonably easy. First of all, [NIP 65](https://github.com/nostr-protocol/nips/blob/master/65.md) explicitly recommends publishing relay selections to a wide range of relays. This is a place where the blastr approach is appropriate. As a result, relay selections are _usually_ available on the most popular public relays. Then there are special purpose relays like purplepag.es, which actively seek out these notes and index them.

These indexes are not confined to relays either. It would be trivial to create a DVM that you could ask for a pubkey's relay selections, optionally for a fee. Alex Gleason's [proxy tag](https://github.com/nostr-protocol/nips/blob/master/48.md) could also be used to indicate indexes that exist outside the nostr network — whether that be torrents, DHT keys, or what have you.

The best part is that this doesn't negatively impact the decentralization of the network because in principle these indexes are stateless — in other words, they're easily derived from the state of the public part of the nostr network.

# Just do it for me

Looping back to where we started — the complexity and technical challenges of implementing the outbox model — there is a simple solution that many people have experimented with in different ways that could solve both issues at once: proxies.

As I mentioned above, Tony thinks of blastr as a proxy, and he's right. More specifically, it's a write-proxy. This is only part of its functionality (it also acts as an independent agent which crawls the network. EDIT: apparently this is not true!), but it is an essential part of how people use it.

Another kind of proxy is a read proxy. There are several implementations of these, including my own [multiplextr](https://github.com/coracle-social/multiplextr) proxy, which is outbox-compatible (although it requires a wrapper protocol for use). The advantage of a proxy like this is that it can reduce the number of connections a client has to open, and the number of duplicate events it has to download.

Proxies can do all kinds of fancy things in the background too, like managing the outbox model on behalf of the client, building an index of everything the user would be likely to ask for in advance to speed up response times, and more.

One interesting possibility is that a NIP 46 signer could double as a proxy, reducing the number of round trips needed. And since a signer already has access to your private key, this kind of proxy would not result in an escalation in permissions necessary for the proxy to work.

# It's simple

The number of cool and creative solutions to the content replication and indexing problem is huge, and certainly doesn't end with blastr. Just to summarize the next steps I'm excited to see (to be honest, I want to build them myself, but we all know how that goes):

- More clients supporting outbox
- Outbox implementations maturing (Coracle's still has some issues that need to be worked out)
- A shift from relying on relay hints to relying on pubkey hints + relay selection indexes of some kind
- Proxy/signer combos which can take on some of the heavy lifting for clients of delivering events to the right inboxes, and pulling events from the right outboxes

Let's get building!

Disambiguating the Gossip Model. Advocating for relay proxies. Separating the Truth from the Jokes. Ban Jack! Down with Blastr!

This is a long form article, you can read it in https://habla.news/a/naddr1qvzqqqr4gupzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqq2hxenh2cchynnpdag4sepkx4gxyj2dt9nk6pn2mxs