發布支持 BitTorrent 2.0 協議的 libtorrent 2

libtorrent 2.0(也稱為 libtorrent-rasterbar)的主要版本已經推出,提供了 BitTorrent 協定的記憶體和 CPU 高效實作。 該庫用於 Deluge、qBittorrent、Folx、Lince、Miro 和 Flush 等 torrent 用戶端(不要與 rTorrent 中使用的其他 libtorrent 庫混淆)。 libtorrent 程式碼是用 C++ 編寫的,並在 BSD 許可證下分發。

該版本值得注意的是增加了對 BitTorrent v2 協定的支持,該協定放棄使用衝突選擇問題的 SHA-1 演算法,轉而使用 SHA2-256。 SHA2-256 用於控制資料區塊的完整性和索引(資訊字典)中的條目,這違反了 DHT 和追蹤器的兼容性。 對於具有 SHA2-256 哈希值的 torrent 的磁力鏈接,建議使用新的前綴“urn:btmh:”(對於 SHA-1 和混合 torrent,使用“urn:btih:”)。

由於替換雜湊函數破壞了協定相容性(雜湊欄位是32 個位元組而不是20 個位元組),BitTorrent v2 規格最初開發時沒有考慮向後相容性,並採用了其他重大更改,例如在索引中使用Merkle 雜湊樹減少 torrent 檔案的大小並在區塊層級檢查下載的資料。

BitTorrent v2 的變化還包括向每個檔案分配單獨的哈希樹​​的轉變,以及部分使用檔案對齊(無需在每個檔案後面添加額外的填充),這可以消除存在相同檔案時的資料重複,並使其更容易識別文件來源不同。 提高了 torrent 目錄結構編碼的效率,並添加了處理大量小檔案的最佳化。

為了平滑 BitTorrent v1 和 BitTorrent v2 的共存,已實作建立混合 torrent 檔案的功能,其中除了具有 SHA-1 雜湊值的結構外,還包括具有 SHA2-256 的索引。 這些混合 torrent 可以與僅支援 BitTorrent v1 協定的用戶端一起使用。 由於穩定性問題尚未解決,libtorrent 2.0 中對 WebTorrent 協定的預期支援已推遲到下一個主要版本,該版本要到今年年底才會發布。

來源: linux.org.ru