BitTorrent 2.0 protokolünü destekleyen libtorrent 2 sürümü

BitTorrent protokolünün bellek ve CPU açısından verimli bir uygulamasını sunan büyük bir libtorrent 2.0 sürümü (libtorrent-rasterbar olarak da bilinir) tanıtıldı. Kitaplık, Deluge, qBittorrent, Folx, Lince, Miro ve Flush gibi torrent istemcilerinde kullanılır (rTorrent'te kullanılan diğer libtorrent kitaplığıyla karıştırılmamalıdır). Libtorrent kodu C++ ile yazılmıştır ve BSD lisansı altında dağıtılmaktadır.

Sürüm, çarpışma seçiminde sorunlar yaşayan SHA-2 algoritmasını kullanmaktan SHA1-2 lehine uzaklaşan BitTorrent v256 protokolüne yönelik desteğin eklenmesiyle dikkat çekiyor. SHA2-256, hem veri bloklarının bütünlüğünü kontrol etmek hem de DHT ve izleyicilerle uyumluluğu ihlal eden dizinlerdeki (bilgi sözlüğü) girişler için kullanılır. SHA2-256 karmalarına sahip torrentlere manyetik bağlantılar için yeni bir "urn:btmh:" öneki önerilir (SHA-1 ve hibrit torrentler için "urn:btih:" kullanılır).

Karma işlevinin değiştirilmesi protokol uyumluluğunu bozduğu için (karma alanı 32 bayt yerine 20 bayttır), BitTorrent v2 spesifikasyonu başlangıçta geriye dönük uyumluluk düşünülmeden geliştirildi ve indekslerde Merkle karma ağaçlarının kullanılması gibi diğer önemli değişiklikler benimsendi. Torrent dosyalarının boyutunu küçültmek ve indirilen verileri blok düzeyinde kontrol etmek için.

BitTorrent v2'deki değişiklikler ayrıca her dosyaya ayrı karma ağaçları atamaya geçişi ve parçalar halinde dosya hizalamanın kullanımını (her dosyadan sonra ek dolgu eklemeden) içerir; bu, aynı dosyaların varlığında verilerin çoğaltılmasından kurtulmanıza olanak tanır ve dosyalar için farklı kaynakların tanımlanmasını kolaylaştırır. Torrent dizini yapısı kodlamasının verimliliği artırıldı ve çok sayıda küçük dosyayı işlemek için optimizasyonlar eklendi.

BitTorrent v1 ve BitTorrent v2'nin bir arada varlığını kolaylaştırmak için, SHA-1 hash'lerine sahip yapıların yanı sıra SHA2-256'ya sahip indeksleri içeren hibrit torrent dosyaları oluşturma yeteneği uygulandı. Bu hibrit torrentler yalnızca BitTorrent v1 protokolünü destekleyen istemcilerle kullanılabilir. Çözülmemiş kararlılık sorunları nedeniyle, libtorrent 2.0'da WebTorrent protokolü için beklenen destek, yıl sonuna kadar yayınlanmayacak olan bir sonraki büyük sürüme kadar ertelendi.

Kaynak: linux.org.ru