Replying to Avatar splinter

Community relays are a bad idea

Community relays get mentioned a lot as a solution to spam or illegal content. The basic idea is that specialized relays can moderate and filter content. Choosing relays would be akin to choosing the type of content you want to see.

I think community relays create more problems than they solve:

1. Spam or illegal content filtering through relays only works if you also stop using unfiltered, general purpose free relays. This would see you isolate on a small, relay-bound network island.

2. By using specialized relays, you give those relays power over you. If relays are generic and interchangeable, then being banned by one of them doesn't matter. However, if you get banned by the largest Politics relay, for example, you can no longer reach that community.

3. Filtering at a relay level is impractical to begin with. It's similar to expecting node operators to filter what makes it on to the blockchain, though admittedly with a bit less permanence involved. Relays should have basic spam filtering in place, but no sane relay admin wants to actively monitor and police all content that their relay carries. Even if they were so inclined, they would need to use a client to do it.

4. Relays don't actually host any illegal media, they only carry text. Illegal media such as CP, for example, needs to be uploaded to a 3rd party platform, and displayed by a client. The relay can potentially carry a URL to such content, but it never actually hosts it and it's clients that display it to users.

5. Communities, reports, content filtering, these are all easier to implement at a client level. Ultimately, the website or app where the content appears is the one that will be held to account, along with the platform where the media is stored.

Please do not give power to relays, I ask you this as someone who runs a free relay.

I don't really understand.. how can a group focus on a topic without any kind of invite/mod system. You say you're worried about being banned from a politics group, well, Twitter doesn't do groups, so what are we really saying here. What makes a group come into existence? What happens for example when someone is streaming and then some hater comes in and destroys the chat? There are many uses for relays beyond a Twitter experience..

Reply to this note

Please Login to reply.

Discussion

What I'm advocating for is implementing communities/groups at a client level, which is largely what is happening today. Presumably clients will add actual moderation functionality, giving admins the ability to stop users from posting in these communities, remove posts, etc.

This is fine. The difference is that when a user gets banned from such a community, it doesn't affect their followers' ability to see their posts at all. They can also start their own community for the same topic if they so choose with a couple of clicks.

However, if community relays become a thing and we're presumably only subscribed to relays that we have an interest for (since otherwise the whole idea doesn't work), then getting banned from such a relay will also impact many user's ability to see your posts. It also vastly restricts your ability to start your own community, since presumably you need to have your own relay to do it, and you need to find some way of reaching a bunch of users who are isolated on network islands.

These concerns you have assumes clients are too dumb to find someone when they've been booted from a relay. Which is the whole thing that nostr is supposed to solve.

I think it only works if relays remain generic and interchangeable. The issue with community relays is that they require the user to isolate on specific relays to get the benefits.

With current clients that don't support anything but Twitter megaphone blasting yes. But a client that understands how to find communities would not have this problem.

So let's say as part of my signing up through a client, I get asked which topics/communities I'm into, and I choose Science, Politics and Cooking.

Not sure how the client would handle any duplicates there, but I digress.

Now let's assume I piss off the management of the Science relay and get banned.

I no longer have a way of reaching the users of that Science community, even though they may be subscribed to me, since we no longer have a relay in common. If I create a new Science community, how would they know about it? How would the client decide to recommend it to anyone? Do I need to host a relay to do it?

Worse yet, maybe the Science community relay just disappears one day. The entire community erased.

How does IRC work or discord? It's a server with chat rooms. You get booted? You're booted. At least with Nostr if you followed someone, you know how to find them via the other relays. You could stream down those events to another relay if you want and reply to them there. So far these relays don't even disallow reading so you can still read those notes even if you're booted (also better than IRC). Yes you could run your own science relay or provide a mirror. Anything is possible in nostr dev world. I refuse to accept that running a relay is too hard either..

IRC is a good parallel, on large networks you can create, join and get banned from thousands of channels, but you're still on the same network with everybody. You can even get banned from individual IRC servers on the network and still carry on as if nothing happened, because all servers on the network share the same data. Similarly, if one of the IRC servers on the network disappears and never comes back, no channels on the network are affected.

What you are proposing is similar to the hundreds of single-server IRC networks that have the one large channel run by the same people who run the server itself. If you get banned, you've lost access to the channel and all people on that IRC network. You now have to join another one and hope that you can find some of them there. Similarly, if the server gets canned one day, your channel is gone with it.

Your argument is you could run your own IRC server and people could join that. What I'm saying is we shouldn't have to, it's easier and better for Nostr to keep relays generic and solution for communities at a client level, similar in concept to the large IRC networks in this example.

No, my argument is that relays can be like those large irc networks but also run by multiple entities instead of one entity. Large irc networks afaik still have a central entity running the synchronization between the servers.

A large IRC network is a mesh of servers (relays) that all share the same content. They are run by multiple entities because they are multiple individual servers (relays in our example). In this example Nostr is the IRC network, and relays are its servers.

Large IRC network do have central governance, which is usually made up of all individual server operators and used to decide on network-level things, like services, which other servers should be added, etc.

For clarity, I want Nostr to be like those large IRC networks, where all servers (relays) share the same data and all channels (communities) are unaffected by the actions of a single server.

So what I am trying to say (but it's hard) is that you are arguing against community relays and making all kinds of assumptions about how it will work. And now I got suckered into doing the same 😂 I could talk about all the ways nip72 is broken but I won't. I will simply say, it's not clearly defined what community relays or communities are and it's going to take a client or a nip to enter that frontier of unbuilt functionality.

Clients will eventually move away from the blaster model of all notes on all relays. This is already a terrible experience and centralizing force that is killing smaller relays. We already know how to find other npubs via gossip, and we will need a similar way to discover communities otherwise we are all just missing our replies because the messages are on relays that we aren't connected to. And along those same lines, some relays will not want to carry certain topics that is their choice.

The closest thing I've seen to making progress in this realm lately is this nip: https://github.com/nostr-protocol/nips/pull/566#issuecomment-1806961991