I think this is right. Unless someone comes up with some magic - which I don't rule out - it's a trade off. I think a lot of people are not going to be satisfied with anything other than a Twitter clone. And I really think that failing the magic the only way to produce a performant Twitter clone is via some version of a big db controlled by a single entity. Personally, for me, censorship resistance is way more important than all kinds of things that Twitter has that I don't care about so for me that trade-off is easy to make. Since I got involved with nostr I've been ranting against doing things that Twitter does that I think are impossible to do (properly) in a meaningfully decentralized protocol. Like counting likes and followers. I mean, of course you can count them as long as you are satisfied with a count that is always wrong and sometimes way wrong and totally wastes resources to compile. Personally, I'm here to read what certain people have to say. I don't give the slightest shit how many people follow them or how many people like what they say. But what I want from a system like this is different from what others want. I won't ever need to follow more than a few dozen people.
I personally use a desktop computer over a starlink interface and I follow about 170 people. Right now I'm connected to 31 relays, which is far fewer connections than this computer can make. So it is working great for me. But I recognize that younger people tend to only have a smartphone and fewer people use desktop computers. And I recognize some people want to follow thousands of other people. That is a difficult thing to make work well in a direct fashion under the outbox/inbox model. But it can work indirectly. One solution is using a client proxy (which @hodlbod and I speak about briefly on his podcast that will be coming out in a week or so) which is basically an internet server which acts like a client on your behalf on the outside, and presents like a relay on the inside so that your mobile app only needs to make one connection. That can be done right now with zero changes to the NIPs, using the inbox/outbox model, and it solves that mobile phone problem far better than (1) blasting events everywhere, or (2) everybody centralizing on the same relays. Sure, most people won't be running their own client proxy, they will sign up as a customer to a client proxy service. But they can easily move to a different one if the one they are using starts censoring them. And us hacker do-it-yourself types retain the option of running direct. @Mazin
I appreciate this post, thank you for taking the time. Obviously, I’m a big fan of proxy relays as a general concept (thats what filter.nostr.wine is) and we will likely offer this type of individual proxy relay as a service eventually. I’m not sure that it leads to decentralization that is much better than us just having say 50 or 100 “big” relays where we can also “move to different ones if they start censoring us”. There will likely be far fewer proxy relay providers than public relays.
I don't expect people will spread out over thousands of relays. Things naturally gravitate towards centralization. We don't all use thousands of different web browsers or even thousands of different email providers (anymore)... people learn which ones are the best and people naturally gravitate to and centralize upon those. The same will be true of relays. Most people will use the main group of 40 or so relays (which might even whittle down to 10 or so over time, who knows) that everybody knows work well. And that begs the question "they why bother with the outbox model?" Because the outbox/inbox model allows that 5% of people who want to do their own thing, to roll-their-own, to have custody of their own notes, to be sure they are not being censored, to do so without losing their audience. I hope the fan-out never gets crazy large. I hope I'm right that most people will naturally tend toward using the same popular relays. But if it does get large, I think proxy solutions are going to be the way to manage it. I didn't realize filter.nostr.wine was such a thing, or that you were involved with it (so much going on in nostr to keep track of who is doing what).
That's funny. I also mostly use a desktop over starlink and use gossip (though I happen to be composing this on Amethyst on my phone at the moment) and I currently follow fewer than that so yeah, for me there is no performance bottleneck, no battery issues. I also run a personal relay based on strfry with my own minor modifications and I very much like the idea of client proxies. But I also grow most of my own food. And while friends who come over admire my garden and tell me how much they'd like to have one like it themselves, everyone knows that the vast majority of people are not gonna be spinning up a VPS to run and maintain a proxy relay. I think needing to even subscribe and pay for a proxy that someone else runs is going to be too big an adoption hurdle for nostr to get beyond fringe usage in the age of downloading an app to your phone that "just works" in about 15 seconds. I hope I'm wrong but that's how it seems to me. For me, the problem with even "50 or 100" big relays that everyone uses is that each and every one of those relays becomes a target for government's that think their job is to keep people from saying things they don't want them to say. If there is such a target set, no matter the intentions of the people operating those relays, the whole thing is too vulnerable. I think the only way it's not vulnerable is if relays are tiny, cheap, stupid and ubiquitous so that it's effectively impossible to police them by sheer numbers. I recognize that world has all the performance and scaling issues we are talking about and it also may not work in the sense of getting past fringe adoption. But again, I'm here for the free speech absolutism, not for the stickers, badges, likes, follower counts, etc.
so no jurisdictional relay arbitrage?
From this point of view I don't see how to solve the problem. Information flows in the digital world in bubbles. The idea of an omnipresent connection where everything appears to be connected and we know everything that is happening instantly is a fallacy. Hodlbod's explanation of how Twitter achieves this apparent ubiquity demonstrates that this data is manipulated. Trying to achieve this result will simply perpetuate the error and generate unnecessary technical problems.
Client proxies only need to serve smallish groups where the intersection of the relays used by the people followed by the people they serve isn't too large. Then we can have many client proxies.
Most of my opinions about nostr's architecture come from a conversation I had with a friend of mine who used to work at Twitter. He explained that Twitter is only able to deliver relevant content quickly by pushing it to a huge network of special purpose caches. This is easily done with nostr relays in theory, the hard part is coordinating how caches (relays) get primed. I think some combination of push and pull will be necessary - if indeed the problem can be solved without central coordination.
So like having a Smart Relay?
I definitely think that's part of it
What else do you think we could need? (Nymble is looking to commission a smart relay in the near future and would like to get some perspective on what else should be built into it)
Well-established strategies that people can expect smart relays to implement. DVMs that can perform aggregation/analysis/discovery on relays, including AUTH-protected ones. Clients that can use smart relays. Conventions for using different relays differently. Lots of things, mostly based on establishing good conventions and a shared mental model for this stuff.
DVM is definitely something we want to build. We were also thinking of setting up a page (at a .bit domain controlled by the client) that would act as the canonical source of information for the .bit name holder so that clients can be guarantied to receive every note the people they follow have ever posted (or at least the ones they want them to see). An added benefit is that it seems that clients would be able to pull information faster with such an architecture.
If Nostr strives to be a Twitter and deliver what Twitter delivers, it will fail. The beauty is in not having an algorithm. If people insist on wanting to be directed, I think they are not the right people for this type of freedom, which requires a commitment together. Aristotle said that there are slaves by nature. I don't think Nostr should become a slave network.