Radicle,一个P2P平台,发布了1.6版本。它旨在创建一个去中心化的协作代码开发和存储服务,类似于GitHub和GitLab,但不依赖于特定服务器,不受审查,并由P2P网络参与者驱动。该平台支持开发者之间典型的社交互动元素,例如问题、补丁和代码审查。该项目使用Rust语言编写,并以Apache 2.0和MIT许可证发布。目前已提供多个构建版本。 Linux и macOS桌面客户端、网页界面和控制台界面也正在开发中。
Radicle 允许您在集中式平台和公司上开发和分发代码时不必依赖,这会带来额外的风险(单点故障,公司可能会关闭或改变工作条件)。为了管理代码,Radicle 使用熟悉的 Git,并通过在 P2P 网络上定义存储库的工具进行扩展。所有数据首先保存在本地(本地优先概念),并且无论网络连接状态如何,都始终在开发人员的计算机上可用。
参与者提供对其代码和与代码相关的工件(例如补丁和问题)的访问权限,这些工件存储在本地并复制到连接到公共去中心化 P2P 网络的其他感兴趣的开发人员的节点。由此形成了一个全球去中心化的Git存储库,其数据在不同的参与系统上进行复制和复制。
Gossip协议用于识别P2P网络中的相邻节点,而基于Git的Heartwood协议则用于节点间的数据复制。由于该协议基于Git,因此该平台可以轻松集成到现有的Git开发工具中。公钥加密技术用于识别节点和验证代码库,无需使用凭证。身份验证和授权均通过公钥完成,无需集中式机构。 服务器.
P2P网络中的每个存储库都有自己的唯一标识符并且是自我认证的,即存储库中的所有操作,例如添加提交和留下要发布的评论,都由所有者使用数字签名进行认证,这使您可以在不使用集中式证书颁发机构的情况下验证其他节点上数据的正确性。要获得对存储库的访问权限,至少一个节点在线并拥有其复制副本就足够了。
P2P 网络中的节点可以订阅特定的存储库并接收更新。可以创建仅可由某些节点访问的私有存储库。 “委托”的概念用于管理和拥有存储库。委托人可以是个人用户、机器人或与特殊标识符绑定的组。代表可以接受存储库的补丁、关闭问题并设置存储库的访问权限。每个存储库可以有多个与其关联的委托。
Radicle 仓库作为常规 Git 仓库存储在用户系统上,并带有额外的命名空间,用于存储正在处理的同级和分支的数据。讨论、建议的补丁和审核组件也作为协作对象 (COB) 存储在 Git 仓库中,并在同级之间复制。
在新版本中:
- Radicle 节点实现 (radicle-node) 已迁移至使用 Mio I/O 库。由于 netservices、io-reactor 和 popol 包阻碍了所需的跨平台支持,因此已从依赖项中移除。新增了一个 reactor 模块,该模块使用 Mio 重写了 io-reactor。
- 过渡到 Mio 平台使我们能够实现平台支持。 Windows目前处于实验阶段。
- 解析命令行参数的代码已迁移到 clap 库,该库统一了解析参数时的行为,并为 rad 实用程序添加了自动命令提示生成、错误解决建议、输出高亮显示和命令自动完成等功能。
- 除了使用 RAD_PASSPHRASE 环境变量、“--secret”命令行选项和配置文件参数外,radicle-node 现在还支持 systemd 凭据机制,用于安全地传输访问密钥 (xyz.radicle.node.secret) 和解密它们的密码 (xyz.radicle.node.passphrase)。
- Rust 编译器支持的最低版本要求已提高到 1.85。
来源: opennet.ru
