NIP-29-Gruppen

NIP-29-Gruppen: geschlossene Chaträume, in denen nur Mitglieder schreiben können, mit Moderations-Events und Relay-signierten Snapshots des Gruppenstatus.

Gruppen aktivieren

  1. Führen Sie nostrfy genkey aus, um relay.private_key zu setzen (erforderlich — ohne ihn werden keine Gruppenmetadaten erzeugt).
  2. Starten Sie das Relay neu.

So funktionieren Gruppen

Gruppen werden durch Events erstellt und moderiert. Aus diesen Moderations-Events erzeugt das Relay Relay-signierte Snapshots, die Clients zur Anzeige verwenden:

EventBeschreibung
kind:9007Gruppe erstellen (der Ersteller wird Admin)
kind:9000 / 9001Mitglied hinzufügen (mit Rollen) / Mitglied entfernen
kind:9002Metadaten bearbeiten (Name, Beschreibung, öffentlich/privat, ...)
kind:9005Event löschen (Moderation)
kind:9008Gruppe löschen (ihre gespeicherten Events werden gelöscht)
kind:9009Einladungscode erstellen
kind:9010Pin-Liste aktualisieren
kind:9021 / 9022Beitrittsanfrage / Austrittsanfrage

Relay-signierte Snapshots

  • kind:39000 — Gruppenmetadaten (Name, Sichtbarkeitseinstellungen, ...)
  • kind:39001 — Admin-Liste
  • kind:39002 — Mitgliederliste
  • kind:39005 — angepinnte Events

Sichtbarkeitseinstellungen der Gruppe

TagBedeutung
privateNur Mitglieder können Nachrichten lesen
restrictedNur Mitglieder können schreiben
hiddenMetadaten sind für Nichtmitglieder verborgen
closedBeitrittsanfragen werden nicht automatisch genehmigt (Einladungscodes erforderlich)
livekitDie Gruppe hat einen LiveKit-Audio-/Videoraum

Untergruppen

Gruppen können hierarchisch sein — verschachtelt mit parent- / child-Tags. Zyklen werden automatisch abgewiesen.

Gruppe verlassen
Jedes Mitglied — einschließlich des letzten Admins der Gruppe — kann mit kind:9022 austreten und wird automatisch entfernt; wenn der letzte Admin austritt, hat die Gruppe keine Admins mehr. Ernennen Sie zuerst einen weiteren Admin, oder löschen Sie die Gruppe mit kind:9008, oder stellen Sie eine adminlose Gruppe wieder her, indem Sie ein Moderations-Event mit dem eigenen Schlüssel des Relays signieren (relay.private_key, der NIP-11-Self-Pubkey). Siehe Fehlerbehebung für die Anleitung.