Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Community scoped events #1021

Closed
wants to merge 2 commits into from
Closed

Conversation

sant0s12
Copy link
Contributor

@sant0s12 sant0s12 commented Feb 4, 2024

Alternative to #848, basically my interpretation of #848 (comment).

The basic idea is to wrap posts into post requests instead of defining a lot of new kinds. This way one could wrap any existing kind into the new community post request wrapper kind:11.

I'd also like to revisit something like approvedUntilRevoked from #602 (comment), since people expressed support in favor of having the option to approve posts by default. This would maybe require adding a new kind for moderators to remove the default approved posts (like kind:4550 but in reverse). However, this might make more sense as a separate PR.

@fiatjaf
Copy link
Member

fiatjaf commented Feb 5, 2024

I like this solution, but I also think eventually everybody will realize NIP-72 is fundamentally broken.

@staab
Copy link
Member

staab commented Feb 5, 2024

This leans into the worst part of communities, which is the single moderation model. Client should be responsible for how moderation is implemented, because there are many valid approaches to moderation. This will break Coracle's implementation of groups, which ignores moderation as specced.

@sant0s12
Copy link
Contributor Author

sant0s12 commented Feb 5, 2024

I like this solution, but I also think eventually everybody will realize NIP-72 is fundamentally broken.

@fiatjaf In what way?

This leans into the worst part of communities, which is the single moderation model. Client should be responsible for how moderation is implemented, because there are many valid approaches to moderation. This will break Coracle's implementation of groups, which ignores moderation as specced.

@staab How do you think moderation should work? Tbh I think covering the use case of approve or disapprove by default should be enough but maybe I'm missing something. What is Coracle's approach?

@staab
Copy link
Member

staab commented Feb 5, 2024

How do you think moderation should work?

Coracle ignores nip 72 moderator tags right now because it's not really necessary with WoT filters and such, which hide obvious spam. I do think there are use cases for the current version of approval-based moderation, but there are also use cases which would benefit from disapproval-based moderation. It's also reasonable that the user might want to choose their own moderators based on WoT or an explicit nip 51 list. Anyone could then issue moderation events.

I've drafted an update to NIP 72 at #1024 with slight modifications to to the language that relax the current requirements. The reason I consider this not a breaking change is that it simply shifts the burden of moderation from the protocol to the client/user, which is sort of the point of nostr anyway. This leaves us an opening to evolve how moderation works without contravening the spec, while allowing current implementations to continue working.

The key thing that is broken with NIP 72 though that can't be changed is that a group is forever tied to the person who created the group, and they can change relays/moderators/metadata at any time. That can't be solved without trashing the entire NIP, but this one has enough adoption I don't want to do anything backwards-incompatible.

@sant0s12 sant0s12 mentioned this pull request Feb 6, 2024
@sant0s12 sant0s12 closed this May 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants