Lansarea libtorrent 2.0 cu suport pentru protocolul BitTorrent 2

A fost introdusă o versiune majoră a libtorrent 2.0 (cunoscută și ca libtorrent-rasterbar), oferind o implementare eficientă din punct de vedere al memoriei și al procesorului a protocolului BitTorrent. Biblioteca este folosită în clienți torrent precum Deluge, qBittorrent, Folx, Lince, Miro și Flush (a nu se confunda cu cealaltă bibliotecă libtorrent, care este folosită în rTorrent). Codul libtorrent este scris în C++ și distribuit sub licența BSD.

Lansarea se remarcă prin adăugarea suportului pentru protocolul BitTorrent v2, care se îndepărtează de la utilizarea algoritmului SHA-1, care are probleme cu selecția coliziunilor, în favoarea SHA2-256. SHA2-256 este folosit atât pentru controlul integrității blocurilor de date, cât și pentru intrările în indexuri (info-dicționar), care încalcă compatibilitatea cu DHT și trackere. Pentru legăturile magnetice către torrente cu hash-uri SHA2-256, este propus un nou prefix „urn:btmh:” (pentru SHA-1 și torrentele hibride, se folosește „urn:btih:”).

Deoarece înlocuirea funcției hash întrerupe compatibilitatea protocolului (câmpul hash este de 32 de octeți în loc de 20 de octeți), specificația BitTorrent v2 a fost dezvoltată inițial fără a avea în vedere compatibilitatea cu înapoi și au fost adoptate alte modificări semnificative, cum ar fi utilizarea arborilor hash Merkle în indici. pentru a reduce dimensiunea fișierelor torrent și a verifica datele descărcate la nivel de bloc.

Modificările din BitTorrent v2 includ, de asemenea, trecerea la alocarea de arbori hash separat pentru fiecare fișier și utilizarea alinierii fișierelor în părți (fără adăugarea de umplutură suplimentară după fiecare fișier), care elimină duplicarea datelor atunci când există fișiere identice și facilitează identificarea surse diferite pentru fișiere. Eficiență îmbunătățită a codificării structurii directoarelor torrent și optimizări adăugate pentru gestionarea unui număr mare de fișiere mici.

Pentru a netezi coexistența BitTorrent v1 și BitTorrent v2, a fost implementată capacitatea de a crea fișiere torrent hibride, care includ, pe lângă structurile cu hash-uri SHA-1, indexuri cu SHA2-256. Aceste torrente hibride pot fi utilizate cu clienți care acceptă doar protocolul BitTorrent v1. Din cauza problemelor de stabilitate nerezolvate, suportul așteptat pentru protocolul WebTorrent în libtorrent 2.0 a fost amânat până la următoarea versiune majoră, care nu va fi lansată până la sfârșitul anului.

Sursa: linux.org.ru