跳转至

Arti 2.1.0 更新发布

以下内容的原文翻译来自这篇文章,叙述主语为 Tor Project:

Tor

Arti 是我们正在进行的项目,用于使用 Rust 开发新一代的 Tor 客户端。我们现在很高兴地宣布最新版本 Arti 2.1.0 的发布。

在这个版本中,我们投入了大量与中继(relay)支持和 RPC 开发相关的工作。虽然 Arti 目前仍然无法作为 Tor 中继节点使用,但我们已经看到了稳定的进展,离让开发者在中继角色上测试 Arti 越来越近。同时,我们也对配置系统做了全面翻新,引入基于 derive-deftly 的新架构,让未来扩展和维护 Arti 的配置更加轻松。

本次更新也包含多项错误修复、代码清理,以及对 CI 基础设施的改进,为后续的开发铺平道路。

Arti 2.1.0 概览

在 Arti 2.1.0 版本中,我们的开发重点主要集中在两个方向:

  • 让 Arti 更接近可以作为中继节点使用,特别是与中继路由相关的内部工作。
  • 继续打磨 RPC 接口及其周边基础设施,使 Arti 能通过现代化的 RPC 通信方式与其他应用集成。

虽然这些改动大多属于「幕后重构和基础建设」,但它们对 Arti 的长期发展至关重要。我们预期未来的开发者可以在这些基础之上,开始实际测试 Arti 作为中继节点时的行为和性能。

中继支持与开发进展

Arti 的长期目标之一,是不仅作为客户端(client),还能够成为完整的 Tor 中继实现。在本次 2.1.0 版本中,我们投入了大量与中继相关的内部建设工作,包括:

  • 对中继相关的代码路径和模块进行重构与强化。
  • 为今后在真实 Tor 网络上测试 Arti 作为中继节点预先打好基础。

目前,Arti 仍然不能在公共 Tor 网络上以中继身份安全运行;不过,我们认为很快就能进入让 Arti 开发者社区开始测试「中继模式」的阶段,先在受控环境或测试网络(例如私有测试环境)中进行实验。

换句话说,Arti 2.1.0 意味着:我们正在稳步前进,离「Arti 可以作为中继」又更近了一步。

RPC 开发与配置系统大改版

除了中继支持相关的工作之外,Arti 2.1.0 在 RPC 和配置系统上也有重要进展。

在 RPC 方面,我们延续过去几个版本的工作,持续打磨 Arti 的 RPC 接口与内部实现,让应用程序可以通过现代、可扩展的 JSON RPC 风格接口,与 Arti 进行交互。这包括:

  • 对 RPC 相关代码进行清理和修正,使接口行为更加一致。
  • 为今后新增更多 RPC 功能预先整理内部结构。

在配置系统方面,这次版本则是一场「大翻新」。我们将 Arti 的配置机制改写为采用新的、基于 derive-deftly 的架构。这一改动带来几个明显的好处:

  • 更容易定义新的配置类型:开发者可以用更简洁、更易维护的方式,为 Arti 新增或调整配置项。
  • 减少样板代码:通过自动派生(derive)机制,许多重复、枯燥的配置处理代码不再需要手工编写。
  • 未来扩展成本更低:当 Arti 的功能越来越多时,新的配置系统可以让整体结构保持清晰。

我们相信,这次配置系统的重构,能够在长期节省大量开发时间,也让外部贡献者更容易参与 Arti 的开发。

Bug 修复与 CI 基础设施改进

和许多发布版本一样,Arti 2.1.0 也包含许多看似不那么显眼,却非常重要的修补和清理工作,包括:

  • 修复多项在实际使用中发现的错误与边界情况(edge cases)。
  • 改善代码结构与内部模块边界,让项目更易维护。
  • 强化 CI(持续集成)流水线及相关基础设施,让我们能在开发流程中更早、更稳定地捕捉问题。

这些改进虽然不如大型功能那样显眼,但对维持 Arti 作为一个可靠、安全的匿名通信软件实现至关重要。

MSRV 提升到 Rust 1.89.0

本次发布同时也将 Arti 的最小支持 Rust 版本(Minimum Supported Rust Version, MSRV)提升到 1.89.0,这一调整是依照我们既有的 MSRV 政策进行的。

这意味着:

  • 如果你想从源码编译最新版本的 Arti,请确保你的 Rust 工具链已更新到至少 1.89.0
  • 提升 MSRV 通常是为了能够使用较新的 Rust 语言和标准库特性,让代码更安全、表达力更强,也更容易维护。

如果你维护的是长期部署或发行版软件包,请留意这项变更并适度更新你的构建环境。

想开始使用 Arti 吗?

如果你想进一步了解如何使用 Arti,我们建议从以下几个资源开始:

  • Arti 项目的顶层 README:说明项目目标、整体架构与常见使用方式。
  • arti 这个命令行工具的文档:介绍如何启动 Arti、基本选项和使用场景。

你可以在 Arti 的源码仓库和官方网站上找到这些文档和更多示例代码。由于 Arti 仍在持续演进,我们也鼓励开发者在阅读文档时,搭配最新的 CHANGELOG 了解最近的 API 与行为变更。

了解更多变更细节

如果你有兴趣深入了解 Arti 2.1.0 中所有的变更,包括 API 相关调整与更多细节修正,请参阅 Arti 项目仓库中的 CHANGELOG。那里列出了本次发布的完整变更记录,以及对开发者特别相关的条目。

致谢与赞助

我们要感谢所有为 Arti 2.1.0 做出贡献的人,包括 Niel Duysters、Nihal、Nuhiat-Arefin、Robert Bartlensky、carti-it、hjrgrn、moumenalaoui、robertb 和 sjcobb!没有这些贡献者持续的投入,Arti 不可能发展到今天这一步。

同时,我们也衷心感谢各位赞助者对 Arti 开发工作的资助与支持。正是因为有这些赞助,我们才能在中继支持、RPC 开发、配置系统重构以及整体稳定性上持续推进,让更多重视隐私的用户和开发者在未来受惠于 Arti 与 Tor 网络所提供的保护。

关于 Arti 项目

Arti 是 Tor Project 正在开发的新一代 Tor 实现(implementation),使用 Rust 编写。我们的目标是在维持 Tor 网络匿名性与隐私保护特性的前提下,提供一个更加现代化、更易维护、也更便于集成的函数库与工具集。相比已经服役多年的传统 C 语言 Tor 实现(常被称为「C Tor」或 Tor daemon),Arti 采用更加模块化、结构更清晰的设计,让我们可以更安全、也更灵活地演进 Tor 的功能。

启动 Arti 项目的原因,主要包含几个关键考量:一是希望充分利用 Rust 在内存安全和类型系统方面的优势,降低匿名通信软件在实现层面可能出现的脆弱点;二是让 Tor 的能力更容易被嵌入到各种应用和服务中——无论是桌面软件、移动应用,还是服务器端服务,都能通过 Arti 的函数库与 RPC 接口更方便地集成 Tor。从长期来看,我们希望 Arti 成为一个干净、清晰、适合作为其他项目基础的 Tor 实现。

目前 Arti 仍在积极开发中:在客户端场景,它已经可以支撑相当多的实际使用需求;而在中继(relay)与洋葱服务(onion services)等领域,我们也在持续投入资源,循序渐进地扩展能力。如果你想进一步了解 Arti 的设计目标与最新进展,建议可以参考 Arti 的官方网站和源码仓库: