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,即 NIP-11 self 公钥) 签署一条管理事件来恢复无管理员的群组。具体做法见 故障排除。