Negentropy:集合协调协议
Negentropy 是一种集合协调协议,通过识别缺失事件而无需传输完整数据集,实现 Nostr 客户端和中继之间的高效同步。
工作原理
与请求所有匹配过滤器的事件不同,negentropy 允许客户端将其本地事件集与中继的集合进行比较,仅识别差异。这通过多轮协议实现:
- 指纹计算:客户端和中继各自计算其事件集的指纹
- 比较:交换并比较指纹
- 协调:仅识别并传输缺失的事件 ID
为什么重要
传统的 Nostr 同步使用基于时间戳的 since 过滤器,可能会因以下原因错过事件:
- 客户端和中继之间的时钟漂移
- 多个事件具有相同的时间戳
- 事件乱序到达
Negentropy 通过比较实际事件集而不是依赖时间戳来解决这些问题。
用例
- 私信恢复:客户端可以检测并获取即使带有旧时间戳的缺失私信
- 信息流同步:确保跨中继的完整时间线同步
- 离线同步:断开连接后高效追赶
实现
Negentropy 需要中继支持。客户端通常将其实现为备用恢复机制,而不是替换标准 REQ 订阅,在中继不支持该协议时优雅降级。
相关
- NIP-01 - 基础协议