開源BT下載軟體Transmission發布4.0版正式版原生支持快校功能

nas研玩社mojelly 發佈 2024-05-02T02:27:38.258007+00:00

前言作為在「BT/PT界」很有名氣的Transmission,在2023年初發布Transmission 4.0-beta.3測試版本後,2月8日Transmission官方在GitHub上終於發布了正式版的Transmission 4.

前言

作為在「BT/PT界」很有名氣的Transmission,在2023年初發布Transmission 4.0-beta.3測試版本後,2月8日Transmission官方在GitHub上終於發布了正式版的Transmission 4.0源碼,在官方更新日誌中看到了許多新的特性和功能,其中最引人矚目的則是,看到了和校驗相關的新參數,原生支持快校、跳過校驗功能;以及支持默認trackers預設,這兩項對於經常使用Transmission的玩家來說,可謂是相當重要!雖然其它軟體早已實現,但是對於PT做種的「大戶人家」來說,Transmission的低占用特性還是相當受歡迎的。所以本文就分享一下新功能的特性和實測,以及當前NAS的支持情況。

Transmission 4.0正式版新特性

  • 整個代碼庫已從 C 遷移到 C++。在此過程中,我們刪除了數千行自定義代碼並改用標準 C++ 工具。核心代碼縮減了 18%。核心代碼庫已進行了廣泛的重構,以提高可測試性和可維護性;
  • 從 4.0.0-beta.1 開始,Transmission 版本現在使用SemVer版本控制。
  • 全新的Web 前端,改用 JavaScript 重寫,不再使用老舊的 jQuery UI,支持黑暗模式,且對移動端進行了適配兼容;
  • 支持使用Bittorrent v2種子和混合種子。(對創建v2 和混合種子的支持計劃在即將發布的版本中提供)
  • 新添加的種子是否在添加時完全驗證本地數據,或者稍後按需驗證; *重要特性
  • 用戶現在可以在設置中預設默認的公共tracker追蹤伺服器; *重要特性
  • 現在支持 IPv6 黑名單;
  • 添加了一個選項以在創建新種子時可以匿名忽略身份信息(例如用戶代理和創建日期);
  • 創建新種子時,用戶現在可以指定片段大小;

更多細節,可以查看Transmission官方的更新日誌https://github.com/transmission/transmission/releases/

新功能解析

Mojelly在NAS上安裝完Transmission 4.0後,想了解一下和Transmission 3.0有什麼不同,所以就對比兩個版本的settings.config配置文件,發現了兩個比較感興趣的新參數torrent-added-verify-modedefault-trackers,單從字面上可以理解為,種子添加驗證模式默認trackers

快校&跳過校驗

先了解一下驗證模式,正式名稱為散列檢測,也叫數據校驗,目的為了保證添加的新任務和本地已存在的文件是完全一致的,軟體才會認為任務是完成狀態,用以做種對外提供數據上傳時保證文件的準確性,以往Transmission版本是會對任務強制做完整校驗的。

關於種子校驗模式在Transmission的GitHub主頁里找到了具體介紹:

torrent-added-verify-mode: String ("fast", "full", default: "fast") 新添加的種子是否在添加時對本地數據進行全面驗證,還是等待稍後按需驗證。

關於torrent-added-verify-mode這個參數有兩個可用選項,默認為fast,快速模式;可選為full,即完整校驗模式,後者則舊版本默認方式,新加任務後,設定的下載目錄已有同名文件,則直接做完整校驗。

在翻閱Transmission的GitHub資料發現了新驗證模式的判斷邏輯:

如果 torrent 滿足所有如下條件時,允許新添加的 torrent 跳過完整的驗證步驟:
* 種子有元數據(即不是磁力連結)
* 所有文件都存在
* 所有文件都不是未完成 ( .part) 文件
* 所有文件的大小都與 .torrent 文件中列出的大小相匹配


* 第一段通過校驗和測試
當所有條件都符合時,初始驗證通過且種子被視為完整種子,跳過完整校驗。當對等方請求塊時,各個部分將按需進行惰性檢查。

通過上面的判斷邏輯條件來看,還是相對安全可靠的,但跳過校驗對於PT玩家來說多少可能會有點風險,且新版本、新功能是否被各PT站所兼容、支持尚未可知,建議各位PTer還是謹慎使用或觀望一段時間,看看其他玩家的反饋再決定。

添加默認trackers

先了解一下什麼是tracker?又稱為追蹤伺服器,它的作用是在你新增任務後,讓任務通過更多的trackers伺服器,能夠更快速的找到全網更多同一個任務的做種資源的客戶端,實現各個客戶端進行數據交互,也就能加速資源的下載速度,所以理論上有效的trackers伺服器越多下載速度越快。

default-trackers在最新版的前端UI中可以在設置中找到填寫位置,在網上找到大佬們收集的trackerslist列表粘貼進去即可,這個對於PT玩家沒有什麼用處,但是對於常規的BT下載玩家,trackers相當重要!

新功能實測

▲ 前端Web UI完全重寫,使用現代簡約風格,自適應移動端

快速校驗和跳過校驗對於PT玩家還是相當重要的,特別是如果Transmission卸載重裝、多站輔種或從其他軟體下載的文件轉移任務到Transmission,如果重裝前沒有備份做種信息,原任務想要繼續做種混上傳,在重新添加任務後,Transmission是會對所有任務逐個做校驗,對於PT做種的「大戶人家」,少說上百個、多則幾千個甚至上萬個做種任務,加上Transmission單線程性能,重裝後逐個校驗那個時間完全是可以急瘋人的!且長時間瘋狂讀取硬碟也對硬碟壽命有所影響,這也是為什麼很多玩家不惜鋌而走險也要找所謂的「快校版」、「跳過校驗」版本的魔改Transmission。

用了一個簡單的對比實測,來看看官方原生的快校效果如何:

▲ 新添加任務,下載路徑指向本地已有正確文件的目錄,測試用的Ubuntu 20.04.4的系統鏡像文件,文件大小3.14GB,Transmission 4.0幾秒鐘即從校驗狀態變為「已暫停」,看來官方對於該功能還是相對「保守」,不會直接更改為「正在做種」狀態,後續用戶可以自行選擇開始任務進行做種,還是對任務進行完整校驗。

模擬一下數據不正常的情況,看看「快校」如何處理:

▲ 把原Ubuntu 20.04.4文件更名備份,將一個舊版的Ubuntu 20.04通過複製、更名,將其冒充Ubuntu 20.04.4文件(文件大小不同,但時間早於.torrent種子文件),再在前端手動添加Ubuntu 20.04.4的種子文件。

結果是,Transmission 4.0在幾秒鐘的快速校驗後,任務狀態直接變為「下載中」,且下載過程不會再生成.part的臨時文件,而是直接將下載數據寫入假冒的Ubuntu 20.04.4文件中。

▲ 關於預設默認trackers功能,著名的Tr Web Control前端暫時還沒有更新,所以暫時無法使用這個新特性,只能切回Transmission 4.0自帶的UI前端,在設置(Edit preferences)網絡(Network)里進行添加。

但是實測發現,這個功能的使用邏輯和qBittorrent的略不同,所有的任務的tracker都」實時「依賴於設置中的」預設trackers「,當設置中的trackers更新或者刪除,那麼現有任務的tracker列表也隨之變動。不會像qBittorrent只對添加的任務直接寫入trackers列表,後續更改設置中的tracker不會影響已有任務,而是影響後續新添加的任務。

這個使用邏輯,對需要批量更新所有任務tracker的用戶比較友好,但是要確保使用的trackers都有效,不然反而有副作用,影響現有任務的下載效率。

NAS支持情況

截止NAS研玩社站內發文,主流品牌NAS中,就威聯通擁有了第三方大佬製作的Transmission 4.0專用包,其他品牌NAS如果需要體驗的話,可以通過docker方式嘗鮮。

威聯通NAS安裝包

截止NAS研玩社站內發文,主流品牌NAS中,僅威聯通擁有了第三方大佬製作的Transmission 4.0專用包,威聯通NAS用戶需要安裝包文件,可以關注後,私信發送「威聯通tr」,自動獲取下載地址。

其他品牌NAS如果需要體驗的話,可以通過docker方式嘗鮮。

點評總結

Transmission老玩家應該都了解,Transmission的更新頻率大概是2年一更,但是從Transmission 4.0的更新日誌中來看,代碼庫C遷移到C++,精簡代碼、重構和使用SemVer版本控制來看,後續Transmission的版本更新可能會加快頻率;

用戶期盼多年的」快校/跳過校驗「功能終於落地,再也用到處找尋魔改的Transmission,「trackers添加」也有助於BT玩家進一步提升下載體驗,雖然這兩個功能在其他BT下載軟體可能早已實現多年,但是對於Transmission來說卻是及其重要的功能更新!

關鍵字: