Negentropy 是一种集合协调协议,通过识别缺失事件而无需传输完整数据集,实现 Nostr 客户端和中继之间的高效同步。

工作原理

与请求所有匹配过滤器的事件不同,negentropy 允许客户端将其本地事件集与中继的集合进行比较,仅识别差异。这通过多轮协议实现:

  1. 指纹计算:客户端和中继各自计算其事件集的指纹
  2. 比较:交换并比较指纹
  3. 协调:仅识别并传输缺失的事件 ID

为什么重要

传统的 Nostr 同步使用基于时间戳的 since 过滤器,可能会因以下原因错过事件:

  • 客户端和中继之间的时钟漂移
  • 多个事件具有相同的时间戳
  • 事件乱序到达

Negentropy 通过比较实际事件集而不是依赖时间戳来解决这些问题。

用例

  • 私信恢复:客户端可以检测并获取即使带有旧时间戳的缺失私信
  • 信息流同步:确保跨中继的完整时间线同步
  • 离线同步:断开连接后高效追赶

实现

Negentropy 需要中继支持。客户端通常将其实现为备用恢复机制,而不是替换标准 REQ 订阅,在中继不支持该协议时优雅降级。

相关