bedeutende Veröffentlichungen der Bibliothek (auch bekannt als libtorrent-rasterbar), die eine Implementierung des BitTorrent-Protokolls bietet, die sowohl speichereffizient als auch CPU-schonend ist. Die Bibliothek in Torrent-Clients wie , , , , und (nicht zu verwechseln mit einer anderen Bibliothek , die in rTorrent verwendet wird). Der Code von libtorrent ist in C++ geschrieben und unter der BSD-Lizenz.
Die Veröffentlichung ist bemerkenswert für die Unterstützung des Protokolls , bei dem der Wechsel vom SHA-1-Algorithmus, der anfällig für Kollisionen ist, zu SHA2-256 vollzogen wurde. SHA2-256 wird sowohl für die Integritätsprüfung der Datenblöcke als auch für die Einträge in den Indizes (info-Dictionary) verwendet, wobei die Kompatibilität mit DHT und Trackern beeinträchtigt wird. Für Magnetlinks zu Torrents mit SHA2-256-Hashes wurde ein neuer Präfix „urn:btmh:“ vorgeschlagen (für SHA-1 und hybride Torrents wird „urn:btih:“ verwendet).
Da der Wechsel der Hash-Funktion die Protokollkompatibilität beeinträchtigt (Feld mit 32-Byte-Hash statt 20-Byte), wurde die Spezifikation von BitTorrent v2 ursprünglich ohne Rücksicht auf die Abwärtskompatibilität entwickelt. Zudem wurden wesentliche Änderungen, wie die Verwendung von Merkle-Hashbäumen in den Indizes, vorgenommen, um die Größe von Torrent-Dateien zu reduzieren und die heruntergeladenen Daten auf Blockebene zu überprüfen.
Zu den Änderungen in BitTorrent v2 gehört auch der Übergang zur Bindung einzelner Hash-Bäume an jede Datei und die Anwendung von Dateiausrichtung in Teilen (ohne nachträgliche Auffüllung nach jeder Datei), was es ermöglicht, Datenredundanz bei identischen Dateien zu vermeiden und die Identifikation unterschiedlicher Quellen für Dateien zu erleichtern. Die Effizienz der Kodierung von Verzeichnisstrukturen in Torrents wurde erhöht und Optimierungen für die Verarbeitung einer großen Zahl kleiner Dateien hinzugefügt.
Um das Zusammenleben von BitTorrent v1 und BitTorrent v2 zu erleichtern, wurde die Möglichkeit zur Erstellung hybrider Torrent-Dateien implementiert, die neben Strukturen mit SHA-1-Hashes auch Indizes mit SHA2-256 enthalten.
Die angegebenen hybriden Torrents können mit Clients verwendet werden, die nur das Protokoll BitTorrent v1 unterstützen. Die erwartete Unterstützung des WebTorrent-Protokolls in libtorrent 2.0 steht aufgrund ungelöster Stabilitätsprobleme noch aus. bis zur nächsten bedeutenden Version, die frühestens Ende des Jahres veröffentlicht wird.
Quelle: opennet.ru
