Skip to the content.

安全与同步机制

Note Sync Now 的核心价值不只是“实时同步”,而是“在不把明文交给服务端的前提下完成同步协作”。本页说明当前实现中的安全边界与同步主链路。

端到端加密边界

系统遵循“客户端加密、服务端中转密文”的原则。

客户端负责

相关代码:

服务端负责

相关代码:

服务端不负责明文编辑逻辑,也不应依赖客户端内容语义来进行协作处理。

关键同步流程

1. 加入同步链

客户端调用 joinChain 后:

  1. 通过助记词派生房间与加密相关信息
  2. 建立 Socket 连接
  3. 发送 join-chain 事件并附带 roomId 与设备名
  4. 服务端校验房间 ID
  5. 服务端将 socket 加入对应房间
  6. 如果已有历史密文,服务端立即返回 sync-update
  7. 服务端广播最新 room-info

2. 推送更新

用户编辑内容后:

  1. 客户端对内容进行防抖处理
  2. 内容较大时按块拆分
  3. 客户端加密后发出 push-update
  4. 服务端校验成员资格、数据格式与体积
  5. 服务端写入持久化层或内存层
  6. 服务端向房间其他成员广播 sync-update
  7. 服务端向发送端返回 update-ack

3. 重连与主动同步

当网络波动或客户端恢复时:

冲突处理

当前实现不是简单的“谁最后写谁赢”。客户端集成了冲突管理模块,用于处理本地未同步修改与远端新内容同时出现的情况。

已接入的关键能力包括:

这部分逻辑的核心入口在:

服务端防护边界

当前服务端已经实现若干直接防护措施:

输入验证

访问控制

大小限制

频率限制

数据清理

运行时可观测性

服务端提供:

这两个接口适合在开发、部署排障和后续 CI / 监控接入时使用。

当前工程重点

接下来最值得优先增强的是:

  1. useSocket 补更贴近真实使用路径的测试
  2. 为服务端事件流补 join / sync / error 主链路测试
  3. 把这些现有测试接入 CI,形成稳定质量门禁

推荐阅读顺序

  1. 仓库概览
  2. 架构说明
  3. 当前页面:安全与同步机制
  4. 部署与运行
  5. 更新日志