跳轉到

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 的功能更容易被嵌入到各種應用程式與服務中,無論是桌面軟體、行動 App,甚至伺服器端服務,都能透過 Arti 的函式庫與 RPC 介面更方便地整合 Tor。從長期來看,我們希望 Arti 成為一個乾淨、清晰、適合作為其他專案基礎的 Tor 實作。

目前 Arti 仍在積極開發中:在用戶端場景,它已經可以支援相當多的實際使用情境;而在中繼(relay)與洋蔥服務(onion services)等領域,也持續投入資源、循序漸進地擴展能力。如果你想進一步了解 Arti 的設計目標與最新進度,建議可以參考 Arti 的官方網站與原始碼儲存庫: