Enjoyed reading this. I too was pretty excited about the group chats way back when. Until they immediately got filled with unstoppable spam. This was an early factor in my decision to build relay curation tools.. I wanted to have a group chat for a project, and have it be useful. Still we tend to use telegram and other chat apps because nostr is yet to completely solve this. The first half of this is moderation capability and the final piece will be when auth is implemented for strfry. This is the relay side. Then we will still need a client to connect specifically to 'designated relays' of a group to join the chat.. Overall, I'm not surprised group chats didn't take off. They got attacked and there was not a ready solution. I hope stream chats can survive this same treatment, they're like a slightly modified group chat where the author can mute and apparently clients follow the mutelist somehow. Designated relays could help this, but yes all is still being built as we speak.. I'm curious about the goals part you mentioned toward the end there. You mentioned a relay implementation. Curious what that means. 🌱
MLS allows for group chats with dynamic membership lists, so you can control the number of people in a group chat and even remove participants. It’s standardized by the same group who standardized TCP/IP. Why aren’t more people discussing it?
Interesting, I had not heard of it. I guess it probably needs a JavaScript implementation to start.. the thing too is, I'm not convinced that being able to rebroadcast your notes is a bad thing. Say that you get kicked from a group. In a traditional messaging platform, your messages are gone (or at best, you have a screenshot). In nostr, you can take it with you. You could fork the whole group if you wanted to do so.. those that perhaps disagreed with your being kicked, could follow both forks. It's a new paradigm and it's baked into the core of nostr. We don't need to pretend that delete works. Delete was a fake construct, and there were plenty of Twitter bots that showed deleting was not really possible there either (as they would scrape for all deleted tweets and broadcast them for all to see). This is not a comment related to MLS perse, just a point about how fundamentally different the nostr protocol is.. on discord/reddit there is delete, assuming the same type of bots don't exist there.. but on nostr we have a truly open protocol and therefore we cannot pretend that data will be deleted. The closest analogy is that content even in a group chat, is grouped by consensus, and that consensus can change at will and be changed by all participants.
> I'm curious about the goals part you mentioned toward the end there. You mentioned a relay implementation. Curious what that means. 🌱 Me too 😅 It's something I'll have to put some thought into. Off the top of my head though, things I want: - Invite codes that a user can enter into a client, which then get sent to the appropriate relays to broker admission - Multiple dynamic levels of membership, similar to Patreon. Some posts should be accessible publicly, some only for members, and only certain people should be able to post. - Prevention of content leakage for public notes. Similar to how gift wrap works, but with no encryption. So you might have a public note (maybe protected using AUTH), but you don't want it re-published to other relays. So you instead publish it "to" the relay by doing some kind of relay-specific signature. That way, readers have to know where it came from to verify the signature. - AUTH support, obviously. I think a way for a user to ask to authenticate would be good — that way relays can serve public content to unauthenticated users without asking for their pubkey. Then users can opt into KYC to access subscriber content.
Invite codes would be amazing! Ie, put a code into amethyst and it sets them up for the friens relay instead of dumping them in the global dumpster fire. Not sure about being able to prevent leakage, as some have said "paywalls only work once" rings true, (also given that nostr is easy to make your own client and you can harvest notes pretty easily no matter how much wrapping happens). Pointing notes back to their origin relay is nice, I think we already can do that with hints..? A lot of this stuff, just needs AUTH to be a complete solution using strfry relays. I've been meaning to pony up a bounty for this..
Regarding invite codes, I've proposed using Nostr badges for access control. https://github.com/neilck/nostr-access-control
How would you handle access revocation?