天天看點

開源BT下載下傳軟體Transmission釋出4.0版正式版原生支援快校功能

作者:NAS研玩社Mojelly

前言

作為在“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-mode和default-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 檔案中列出的大小相比對

* 所有檔案的時間(上次修改時間的時間戳)都比添加 torrent 的時間早

* 第一段通過校驗和測試

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

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

添加預設trackers

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

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

新功能實測

開源BT下載下傳軟體Transmission釋出4.0版正式版原生支援快校功能

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

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

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

開源BT下載下傳軟體Transmission釋出4.0版正式版原生支援快校功能

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

模拟一下資料不正常的情況,看看“快校”如何處理:

開源BT下載下傳軟體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檔案中。

開源BT下載下傳軟體Transmission釋出4.0版正式版原生支援快校功能

▲ 關于預設預設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使用者需要安裝封包件,可以關注後,私信發送“威聯通transmission”,自動擷取下載下傳位址。

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

點評總結

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

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

繼續閱讀