Uitgave van libtorrent 2.0 met ondersteuning voor het BitTorrent 2-protocol

Er is een belangrijke release van libtorrent 2.0 (ook bekend als libtorrent-rasterbar) geïntroduceerd, die een geheugen- en CPU-efficiënte implementatie van het BitTorrent-protocol biedt. De bibliotheek wordt gebruikt in torrent-clients als Deluge, qBittorrent, Folx, Lince, Miro en Flush (niet te verwarren met de andere libtorrent-bibliotheek, die wordt gebruikt in rTorrent). De libtorrent-code is geschreven in C++ en gedistribueerd onder de BSD-licentie.

De release valt op door de toevoeging van ondersteuning voor het BitTorrent v2-protocol, dat afstapt van het gebruik van het SHA-1-algoritme, dat problemen heeft met de selectie van botsingen, ten gunste van SHA2-256. SHA2-256 wordt zowel gebruikt om de integriteit van datablokken te controleren als voor vermeldingen in indexen (info-woordenboek), wat de compatibiliteit met DHT en trackers schendt. Voor magnetische links naar torrents met SHA2-256-hashes wordt een nieuw voorvoegsel “urn:btmh:” voorgesteld (voor SHA-1 en hybride torrents wordt “urn:btih:” gebruikt).

Omdat het vervangen van de hashfunctie de protocolcompatibiliteit verbreekt (het hashveld is 32 bytes in plaats van 20 bytes), werd de BitTorrent v2-specificatie aanvankelijk ontwikkeld zonder achterwaartse compatibiliteit in gedachten en werden er andere belangrijke wijzigingen doorgevoerd, zoals het gebruik van Merkle-hashbomen in indexen om de grootte van torrent-bestanden te verkleinen en gedownloade gegevens op blokniveau te controleren.

Veranderingen in BitTorrent v2 omvatten ook de overgang naar het toewijzen van afzonderlijke hashbomen aan elk bestand en het gebruik van bestandsuitlijning in delen (zonder extra opvulling toe te voegen na elk bestand), waardoor duplicatie van gegevens wordt geëlimineerd wanneer er identieke bestanden zijn en het gemakkelijker wordt om te identificeren verschillende bronnen voor bestanden. Verbeterde efficiëntie van de codering van de torrent-directorystructuur en toegevoegde optimalisaties voor het verwerken van grote aantallen kleine bestanden.

Om het naast elkaar bestaan ​​van BitTorrent v1 en BitTorrent v2 te vergemakkelijken, is de mogelijkheid geïmplementeerd om hybride torrent-bestanden te maken, die naast structuren met SHA-1-hashes ook indexen met SHA2-256 bevatten. Deze hybride torrents kunnen worden gebruikt met clients die alleen het BitTorrent v1-protocol ondersteunen. Vanwege onopgeloste stabiliteitsproblemen is de verwachte ondersteuning voor het WebTorrent-protocol in libtorrent 2.0 uitgesteld tot de volgende grote release, die pas aan het einde van het jaar zal verschijnen.

Bron: linux.org.ru