Wydanie libtorrent 2.0 z obsługą protokołu BitTorrent 2

Przesłane przez znaczące wydanie biblioteki libtorrent 2.0 (znany również jako libtorrent-rasterbar), który oferuje implementację protokołu BitTorrent, która jest wydajna pod względem zużycia pamięci i obciążenia procesora. Biblioteka zaangażowany w klientach torrentowych, takich jak Potop, qBittorrent, Folx, Lynx, Miro и Spłukać (nie mylić z inną biblioteką libtorrent, który jest używany w rTorrent). Kod libtorrent jest napisany w C++ i dystrybuowane przez na licencji BSD.

Wydanie jest niezwykłe dodawanie obsługa protokołu BitTorrenta v2, co pozwala uniknąć użycia algorytmu SHA-1, który ma problemy z wyborem kolizji na korzyść SHA2-256. SHA2-256 służy zarówno do kontroli integralności bloków danych, jak i do wpisów w indeksach (info-słowniku), co narusza kompatybilność z DHT i trackerami. W przypadku linków magnetycznych do torrentów z hashami SHA2-256 proponowany jest nowy przedrostek „urn:btmh:” (w przypadku torrentów SHA-1 i hybrydowych używany jest „urn:btih:”).

Ponieważ zastąpienie funkcji skrótu psuje kompatybilność protokołu (pole skrótu ma 32 bajty zamiast 20 bajtów), specyfikacja BitTorrent v2 została początkowo opracowana bez uwzględnienia kompatybilności wstecznej i wprowadzono inne istotne zmiany, takie jak użycie drzew skrótów Merkle w indeksach aby zmniejszyć rozmiar plików torrent i sprawdzić pobrane dane na poziomie bloku.

Zmiany w BitTorrent v2 obejmują także przejście na przypisywanie każdemu plikowi osobnych drzew haszujących oraz zastosowanie wyrównywania plików w częściach (bez dodawania dodatkowego dopełnienia po każdym pliku), co eliminuje duplikację danych w przypadku identycznych plików i ułatwia identyfikację różne źródła plików . Poprawiona wydajność kodowania struktury katalogów torrent i dodane optymalizacje do obsługi dużej liczby małych plików.

Aby wygładzić współistnienie BitTorrenta v1 i BitTorrenta v2, zaimplementowano możliwość tworzenia hybrydowych plików torrent, które oprócz struktur z skrótami SHA-1 zawierają indeksy z SHA2-256.
Tych torrentów hybrydowych można używać z klientami obsługującymi tylko protokół BitTorrent v1. Obsługa protokołu WebTorrent oczekiwana w libtorrent 2.0 ze względu na nierozwiązane problemy ze stabilnością odłożony aż do następnej dużej wersji, która ukaże się dopiero pod koniec roku.

Źródło: opennet.ru

Dodaj komentarz