uscita significativa della libreria (nota anche come libtorrent-rasterbar), che offre un'implementazione del protocollo BitTorrent, efficace dal punto di vista del consumo di memoria e del 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 sotto licenza BSD.
L'uscita è notevole per il supporto del protocollo , in cui si è abbandonato l'uso dell'algoritmo SHA-1, che presenta problemi di collisione, a favore di SHA2-256. SHA2-256 è utilizzato sia per il controllo dell'integrità dei blocchi di dati che per le voci negli indici (info-dictionary), il che compromette la compatibilità con DHT e tracker. Per i link magnetici a 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 (campo con hash di 32 byte invece di 20 byte), lo sviluppo della specifica BitTorrent v2 è stato inizialmente condotto senza considerare la retrocompatibilità, e nel pacchetto sono state incluse altre modifiche significative, come l'uso di alberi hash di Merkle negli indici per ridurre la dimensione dei file torrent e verificare i dati scaricati a livello di blocchi.
Tra le modifiche in BitTorrent v2 spicca anche il passaggio al collegamento di singoli alberi hash a ciascun file e l'adozione dell'allineamento dei file per parti (senza l'aggiunta di riempimenti dopo ogni file), il che consente di eliminare la duplicazione dei dati in caso di file identici e semplifica l'identificazione di diverse fonti per i file. È stata migliorata l'efficienza nella codifica della struttura delle directory nei torrent e sono state aggiunte ottimizzazioni per gestire un elevato numero di file di piccole dimensioni.
Per facilitare la coesistenza tra BitTorrent v1 e BitTorrent v2 è stata implementata la possibilità di creare file torrent ibridi, che includono oltre alle strutture con hash SHA-1, indici con SHA2-256.
Questi torrent ibridi possono essere utilizzati con client che supportano solo il protocollo BitTorrent v1. La prevista supporto del protocollo WebTorrent in libtorrent 2.0 è a causa di problemi irrisolti di stabilità fino al prossimo rilascio significativo, che non avverrà prima della fine dell'anno.
Fonte: opennet.ru
