znaczące wydanie biblioteki (znana również jako libtorrent-rasterbar), oferująca implementację protokołu BitTorrent, efektywną pod względem zużycia pamięci i obciążenia CPU. Biblioteka w takich klientach torrentowych jak , , , , i (nie mylić z inną biblioteką , która jest używana w rTorrent). Kod libtorrent napisany jest w języku C++ i na licencji BSD.
Wydanie jest godne uwagi wsparcia dla protokołu , w którym dokonano odejścia od użycia algorytmu SHA-1, który miał problemy z kolizjami, na rzecz SHA2-256. SHA2-256 stosowane jest zarówno do kontroli integralności bloków danych, jak i do zapisów w indeksach (info-dictionary), co narusza kompatybilność z DHT i trackerami. Dla magnetycznych linków do torrentów z hashami SHA2-256 zaproponowano nowy prefiks „urn:btmh:” (dla SHA-1 i hybrydowych torrentów używa się „urn:btih:”).
Ponieważ zmiana funkcji haszowania narusza kompatybilność protokołu (pole z hashem 32 bajtów zamiast 20 bajtów), opracowanie specyfikacji BitTorrent v2 początkowo prowadzono bez uwzględnienia wstecznej kompatybilności i w skład zaakceptowano inne istotne zmiany, takie jak wykorzystanie drzewa Merkle w indeksach w celu zmniejszenia rozmiaru plików torrent i weryfikacji pobranych danych na poziomie bloków.
Wśród zmian w BitTorrent v2 wyróżnia się także przejście na wiązanie pojedynczych drzew hash do każdego pliku oraz zastosowanie wyrównywania plików w częściach (bez dodawania wypełnienia po każdym pliku), co pozwala na eliminację duplikacji danych przy zachowaniu identycznych plików i upraszcza identyfikację różnych źródeł dla plików. Zwiększona efektywność kodowania struktury katalogów w torencie i dodano optymalizacje do obsługi dużej liczby drobnych plików.
Aby zminimalizować współistnienie BitTorrent v1 i BitTorrent v2, wprowadzono możliwość tworzenia hybrydowych plików torrent, które oprócz struktur z hashami SHA-1, zawierają również indeksy z SHA2-256.
Wspomniane hybrydowe torrenty mogą być używane z klientami, które obsługują tylko protokół BitTorrent v1. Oczekiwana w libtorrent 2.0 obsługa protokołu WebTorrent z powodu nierozwiązanych problemów ze stabilnością do następnego znaczącego wydania, które nie nastąpi wcześniej niż pod koniec roku.
Źródło: opennet.ru
