Veröffentlichung von libtorrent 2.0 mit Unterstützung für das BitTorrent 2-Protokoll

Eingereicht von bedeutende Bibliotheksveröffentlichung libtorrent 2.0 (auch bekannt als libtorrent-rasterbar), das eine Implementierung des BitTorrent-Protokolls bietet, die hinsichtlich Speicherverbrauch und CPU-Auslastung effizient ist. Bibliothek beteiligt in Torrent-Clients wie Sintflut, qBittorrent, Folx, Luchs, Miro и Bündig (nicht zu verwechseln mit einer anderen Bibliothek libtorrent, das in rTorrent verwendet wird). Der Libtorrent-Code ist in C++ geschrieben und vertrieben von unter der BSD-Lizenz.

Die Veröffentlichung ist bemerkenswert hinzufügen Protokollunterstützung BitTorrent v2, wodurch die Verwendung des SHA-1-Algorithmus vermieden wird Probleme mit Kollisionsauswahl zugunsten von SHA2-256. SHA2-256 wird sowohl zur Kontrolle der Integrität von Datenblöcken als auch für Einträge in Indizes (Info-Wörterbuch) verwendet, was die Kompatibilität mit DHT und Trackern verletzt. Für magnetische Links zu Torrents mit SHA2-256-Hashes wird ein neues Präfix „urn:btmh:“ vorgeschlagen (für SHA-1 und Hybrid-Torrents wird „urn:btih:“ verwendet).

Da das Ersetzen der Hash-Funktion die Protokollkompatibilität beeinträchtigt (das Hash-Feld ist 32 Byte statt 20 Byte groß), wurde die BitTorrent v2-Spezifikation zunächst ohne Rücksicht auf die Abwärtskompatibilität entwickelt und es wurden andere wichtige Änderungen übernommen, wie beispielsweise die Verwendung von Merkle-Hash-Bäumen in Indizes um die Größe von Torrent-Dateien zu reduzieren und heruntergeladene Daten auf Blockebene zu überprüfen.

Zu den Änderungen in BitTorrent v2 gehören auch der Übergang zur Zuweisung separater Hash-Bäume zu jeder Datei und die Verwendung der Dateiausrichtung in Teilen (ohne zusätzliches Auffüllen nach jeder Datei hinzuzufügen), was die Duplizierung von Daten bei identischen Dateien verhindert und die Identifizierung erleichtert Verschiedene Quellen für Dateien. Verbesserte Effizienz der Torrent-Verzeichnisstrukturkodierung und zusätzliche Optimierungen für die Verarbeitung einer großen Anzahl kleiner Dateien.

Um die Koexistenz von BitTorrent v1 und BitTorrent v2 zu glätten, wurde die Möglichkeit implementiert, hybride Torrent-Dateien zu erstellen, die neben Strukturen mit SHA-1-Hashes auch Indizes mit SHA2-256 enthalten.
Diese Hybrid-Torrents können mit Clients verwendet werden, die nur das BitTorrent v1-Protokoll unterstützen. Aufgrund ungelöster Stabilitätsprobleme wird in libtorrent 2.0 Unterstützung für das WebTorrent-Protokoll erwartet verschoben bis zur nächsten Hauptveröffentlichung, die erst Ende des Jahres erscheinen wird.

Source: opennet.ru

Kommentar hinzufügen