importante rilascio della libreria (nota anche come libtorrent-rasterbar), che offre un'implementazione del protocollo BitTorrent, efficiente in termini di consumo di memoria e carico sulla CPU. La libreria in client torrent come , , , , e (non confondere con un'altra libreria , utilizzata in rTorrent). Il codice di libtorrent è scritto in C++ e con licenza BSD.
Il rilascio è notevole supporto per il protocollo , che abbandona l'uso dell'algoritmo SHA-1, soggetto a collisioni, a favore di SHA2-256. SHA2-256 è utilizzato sia per il controllo dell'integrità dei blocchi di dati che per le registrazioni negli indici (info-dictionary), il che compromette la compatibilità con DHT e tracker. Per i link magnetici ai torrent con hash SHA2-256 è stato proposto un nuovo prefisso «urn:btmh:» (per SHA-1 e torrent ibridi si usa «urn:btih:»).
Poiché la sostituzione della funzione di hashing compromette la compatibilità del protocollo (un campo di hash di 32 byte anziché di 20 byte), lo sviluppo della specifica BitTorrent v2 è stato inizialmente condotto senza considerare la retrocompatibilità e sono state apportate altre modifiche significative, come l'uso dell'albero di hash di Merkle negli indici per ridurre la dimensione dei file torrent e verificare i dati scaricati a livello di blocchi.
Tra le modifiche introdotte in BitTorrent v2 spicca anche il passaggio all'associazione di singoli alberi di hash a ciascun file e l'applicazione di un allineamento dei file per parti (senza aggiungere riempimenti supplementari dopo ciascun file), il che consente di eliminare la duplicazione dei dati in presenza di file identici e semplifica l'identificazione di diverse sorgenti per i file. È stata aumentata l'efficienza della codifica della struttura delle directory nel torrent e aggiunte ottimizzazioni per gestire un numero elevato di piccoli file.
Per facilitare la coesistenza tra BitTorrent v1 e BitTorrent v2, è stata realizzata la possibilità di creare file torrent ibridi, che includono oltre alle strutture con hash SHA-1, indici con SHA2-256.
I torrent ibridi indicati possono essere utilizzati con client che supportano solo il protocollo BitTorrent v1. Il supporto previsto per il protocollo WebTorrent in libtorrent 2.0 è stato rinviato a causa di problemi irrisolti di stabilità. fino al prossimo rilascio significativo, che non arriverà prima della fine dell'anno.
Fonte: opennet.ru
