Rilascio di libtorrent 2.0 con supporto per il protocollo BitTorrent 2

Viene introdotta una versione significativa della libreria libtorrent 2.0 (nota anche come libtorrent-rasterbar), che fornisce un'implementazione efficiente in termini di memoria e CPU del protocollo BitTorrent. La libreria è utilizzata da client torrent come Deluge, qBittorrent, Folx, Lince, Miro e Flush (da non confondere con l'altra libreria libtorrent utilizzata da rTorrent). Il codice libtorrent è scritto in C++ e distribuito sotto la licenza BSD.

La versione si distingue per l'aggiunta del supporto per il protocollo BitTorrent v2, che ha abbandonato l'utilizzo dell'algoritmo SHA-1, che ha problemi con la selezione delle collisioni, a favore di SHA2-256. SHA2-256 viene utilizzato sia per controllare l'integrità dei blocchi di dati che per le voci negli indici (dizionario informativo), il che interrompe la compatibilità con DHT e tracker. Un nuovo prefisso "urn:btmh:" è stato proposto per i collegamenti magnetici ai torrent con hash SHA2-256 (per i torrent SHA-1 e ibridi viene utilizzato "urn:btih:").

Poiché la modifica della funzione hash interrompe la compatibilità del protocollo (un campo con un hash di 32 byte invece di 20 byte), lo sviluppo della specifica BitTorrent v2 è stato inizialmente effettuato senza tener conto della compatibilità con le versioni precedenti e sono state adottate altre modifiche significative, come ad esempio la utilizzo di un hash tree Merkle negli indici per ridurre la dimensione dei file torrent e controllo dei dati scaricati a livello di blocco.

Altri punti salienti delle modifiche in BitTorrent v2 riguardano il passaggio all'associazione di alberi hash separati per ciascun file e l'applicazione dell'allineamento dei file in parti (senza aggiungere ulteriore riempimento dopo ogni file), che elimina la duplicazione dei dati quando ci sono file identici e ne facilita l'identificazione. diverse fonti per i file . Migliorata l'efficienza della codifica della struttura delle directory torrent e aggiunte ottimizzazioni per gestire un gran numero di piccoli file.

Per agevolare la coesistenza di 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. A causa di problemi di stabilità irrisolti, il supporto per il protocollo WebTorrent previsto in libtorrent 2.0 è stato ritardato fino alla prossima major release, che verrà rilasciata non prima della fine dell'anno.

Fonte: linux.org.ru