Группы NIP-29

Группы NIP-29: закрытые чаты, писать в которых могут только участники, с событиями модерации и подписанными релеем снимками состояния группы.

Включение групп

  1. Выполните nostrfy genkey, чтобы задать relay.private_key (обязательно — без него метаданные групп не генерируются).
  2. Перезапустите релей.

Как работают группы

Группы создаются и модерируются событиями. Из этих событий модерации релей генерирует подписанные снимки, которые клиенты используют для отображения:

СобытиеОписание
kind:9007Создать группу (создатель становится администратором)
kind:9000 / 9001Добавить участника (с ролями) / удалить участника
kind:9002Изменить метаданные (название, описание, публичная/приватная, ...)
kind:9005Удалить событие (модерация)
kind:9008Удалить группу (её сохранённые события очищаются)
kind:9009Создать пригласительный код
kind:9010Обновить список закреплённых
kind:9021 / 9022Запрос на вступление / запрос на выход

Подписанные релеем снимки

  • kind:39000 — метаданные группы (название, настройки видимости, ...)
  • kind:39001 — список администраторов
  • kind:39002 — список участников
  • kind:39005 — закреплённые события

Настройки видимости группы

ТегЗначение
privateТолько участники могут читать сообщения
restrictedТолько участники могут писать
hiddenМетаданные скрыты от неучастников
closedЗапросы на вступление не одобряются автоматически (нужны пригласительные коды)
livekitУ группы есть аудио/видео комната LiveKit

Подгруппы

Группы могут быть иерархическими — вложенными с помощью тегов parent / child. Циклы отклоняются автоматически.

Выход из группы
Любой участник — включая последнего администратора группы — может выйти с помощью kind:9022 и автоматически удаляется; если последний администратор выходит, в группе не остаётся администраторов. Сначала назначьте другого администратора, либо удалите группу с помощью kind:9008, либо восстановите группу без администратора, подписав событие модерации собственным ключом релея (relay.private_key, self pubkey из NIP-11). Инструкцию см. в разделе устранение неполадок.