Any-Sync
Any-Sync是一个开源协议,基于CRDT实现本地优先的通信和协作。Any-Sync有两个重要的区别特征:
- 围绕创作者控制的密钥设计
- 专注于实现大规模高性能通信和协作
Any-Sync fulfills了本地优先软件的七个理想:
- 无加载动画:工作触手可及。Any-Sync在本地设备上保存每个空间的主要副本。与其他设备的数据同步在后台静默进行 - 让您可以随时操作数据。
- 您的工作不会被困在一台设备上。 用户可以轻松在不同设备上工作。每台设备在本地存储中保存数据,设备之间的同步在后台进行,使用CRDT解决冲突。
- 网络是可选的。 一切都可离线工作。数据同步不必通过互联网:Any-Sync允许用户通过本地WiFi网络同步数据。尽管如此,网络仍有其作用 - 它可作为额外备份,帮助对等发现,尤其解决了合上笔记本电脑的问题(您在笔记本上做了更改,而手机离线时,可以在两个设备都在线时同步更改,或通过备份节点同步)。
- 与同事无缝协作。 实现这一目标是实现本地优先软件的最大挑战之一,这就是为什么Any-Sync基于CRDT构建。因此每个设备都能独立解决冲突。
- 长远考虑。 因为您拥有本地优先应用,即使软件作者消失,您仍可在计算机上使用它。开放数据标准和开放代码进一步加强了这一点。
- 默认安全和隐私。 Any-Sync使用端到端加密,因此备份节点存储的加密数据无法读取。冲突解决在设备上进行。密钥由用户控制。
- 您保留最终所有权和控制权。 在本地优先理念中,这意味着您拥有本地数据,因此拥有最终所有权和控制权。为实现最终所有权的理念,我们在Anytype中添加了创作者控制的密钥。
Any-Sync增加的另外两个理想:
- 创作者控制的密钥。 创作者控制加密密钥;没有中央用户注册表(我们甚至不会询问您的电子邮件)。我们添加了自托管备份的选项,以支持用户从网络完全自主。
- 开源。 Any-Sync协议是开源的,因此所有关于其工作方式的声明都可以独立验证。
我们发布了Anytype - 基于Any-Sync协议构建的界面。Anytype用户可以创建空间 - 具有模块化UI的基于图的数据库。每个空间都有唯一的访问权限。
简介
我们设计Any-Sync源于一个强烈的信念,即今天的互联网类似于人类的神经系统 - 如今它是基于云的,所以所有神经元只能通过由不同精英控制的服务器进行通信。我们设想一个"中间无人"的本地优先替代方案将成为互联网通信更好的基础。为此,我们构建了Any-Sync以支持讨论、社区和应用程序的快速可扩展同步。
特点:
- 多设备和代理之间的无冲突数据复制
- 内置端到端加密
- 加密可验证的更改历史
- 适应频繁操作(高性能)
- 可靠且可扩展的基础设施
- 同时支持P2P和远程通信
协议说明
请阅读协议实体和设计的概述。
实现
您可以在以下存储库中找到用Go实现的协议各个部分:
any-sync-node
— 负责存储空间和对象的同步节点实现。any-sync-filenode
— 负责存储文件的文件节点实现。any-sync-consensusnode
— 负责ACL更改监控和验证的共识节点实现。any-sync-coordinator
— 负责网络配置管理的协调器节点实现。
贡献
感谢您希望与我们一起开发Anytype!
❤️ 本项目及其所有参与者均受行为准则约束。
🧑💻 查看我们的贡献指南,了解如何提问、创建问题或提交拉取请求。
🫢 对于安全发现,请发送电子邮件至security@anytype.io,并参考我们的安全指南以获取更多信息。
由Any — 瑞士协会制作 🇨🇭
根据MIT许可证授权。