Release av libtorrent 2.0 med stöd för BitTorrent 2-protokollet

En större utgåva av libtorrent 2.0 (även känd som libtorrent-rasterbar) har introducerats, och erbjuder en minnes- och CPU-effektiv implementering av BitTorrent-protokollet. Biblioteket används i sådana torrentklienter som Deluge, qBittorrent, Folx, Lince, Miro och Flush (inte att förväxla med det andra libtorrent-biblioteket, som används i rTorrent). Libtorrent-koden är skriven i C++ och distribueras under BSD-licensen.

Utgåvan är anmärkningsvärd för tillägget av stöd för BitTorrent v2-protokollet, som går bort från att använda SHA-1-algoritmen, som har problem med kollisionsval, till förmån för SHA2-256. SHA2-256 används både för att kontrollera datablockens integritet och för poster i index (info-ordbok), vilket bryter mot kompatibilitet med DHT och trackers. För magnetiska länkar till torrents med SHA2-256-hashar, föreslås ett nytt prefix "urn:btmh:" (för SHA-1 och hybridtorrenter används "urn:btih:").

Eftersom att ersätta hashfunktionen bryter protokollkompatibiliteten (hashfältet är 32 byte istället för 20 byte), utvecklades BitTorrent v2-specifikationen initialt utan bakåtkompatibilitet i åtanke och andra betydande förändringar antogs, såsom användningen av Merkle hashträd i index för att minska storleken på torrentfiler och kontrollera nedladdade data på blocknivå.

Ändringar i BitTorrent v2 inkluderar också övergången till att tilldela separata hashträd till varje fil och användningen av filjustering i delar (utan att lägga till ytterligare utfyllnad efter varje fil), vilket eliminerar duplicering av data när det finns identiska filer och gör det lättare att identifiera olika källor för filer. Förbättrad effektivitet av kodning av torrentkatalogstruktur och tillagda optimeringar för att hantera ett stort antal små filer.

För att jämna ut samexistensen av BitTorrent v1 och BitTorrent v2 har möjligheten att skapa hybridtorrentfiler implementerats, vilket inkluderar, förutom strukturer med SHA-1-hashar, index med SHA2-256. Dessa hybridtorrenter kan användas med klienter som endast stöder BitTorrent v1-protokollet. På grund av olösta stabilitetsproblem har förväntat stöd för WebTorrent-protokollet i libtorrent 2.0 försenats till nästa stora utgåva, som inte kommer att släppas förrän i slutet av året.

Källa: linux.org.ru