Lanzamiento de libtorrent 2.0 con soporte para el protocolo BitTorrent 2

Se ha introducido una versión importante de libtorrent 2.0 (también conocida como libtorrent-rasterbar), que ofrece una implementación del protocolo BitTorrent eficiente en memoria y CPU. La biblioteca se utiliza en clientes de torrents como Deluge, qBittorrent, Folx, Lince, Miro y Flush (no debe confundirse con la otra biblioteca libtorrent, que se utiliza en rTorrent). El código libtorrent está escrito en C++ y distribuido bajo la licencia BSD.

El lanzamiento se destaca por la adición de soporte para el protocolo BitTorrent v2, que deja de utilizar el algoritmo SHA-1, que tiene problemas con la selección de colisiones, a favor de SHA2-256. SHA2-256 se utiliza tanto para controlar la integridad de los bloques de datos como para las entradas en índices (diccionario de información), lo que viola la compatibilidad con DHT y rastreadores. Para enlaces magnéticos a torrents con hashes SHA2-256, se propone un nuevo prefijo “urn:btmh:” (para SHA-1 y torrents híbridos, se utiliza “urn:btih:”).

Debido a que reemplazar la función hash rompe la compatibilidad del protocolo (el campo hash es de 32 bytes en lugar de 20 bytes), la especificación BitTorrent v2 se desarrolló inicialmente sin tener en mente la compatibilidad con versiones anteriores y se adoptaron otros cambios significativos, como el uso de árboles hash de Merkle en los índices. para reducir el tamaño de los archivos torrent y comprobar los datos descargados a nivel de bloque.

Los cambios en BitTorrent v2 también incluyen la transición a la asignación de árboles hash separados a cada archivo y el uso de alineación de archivos en partes (sin agregar relleno adicional después de cada archivo), lo que elimina la duplicación de datos cuando hay archivos idénticos y facilita su identificación. Diferentes fuentes de archivos. Se mejoró la eficiencia de la codificación de la estructura de directorios de torrent y se agregaron optimizaciones para manejar una gran cantidad de archivos pequeños.

Para facilitar la convivencia de BitTorrent v1 y BitTorrent v2, se ha implementado la posibilidad de crear archivos torrent híbridos, que incluyen, además de estructuras con hashes SHA-1, índices con SHA2-256. Estos torrents híbridos se pueden utilizar con clientes que sólo admiten el protocolo BitTorrent v1. Debido a problemas de estabilidad no resueltos, el soporte esperado para el protocolo WebTorrent en libtorrent 2.0 se retrasó hasta la próxima versión importante, que no se lanzará hasta finales de año.

Fuente: linux.org.ru