Sortie de libtorrent 2.0 avec prise en charge du protocole BitTorrent 2

Une version majeure de libtorrent 2.0 (également connue sous le nom de libtorrent-rasterbar) a été introduite, offrant une implémentation efficace du protocole BitTorrent en termes de mémoire et de CPU. La bibliothèque est utilisée dans des clients torrent tels que Deluge, qBittorrent, Folx, Lince, Miro et Flush (à ne pas confondre avec l'autre bibliothèque libtorrent utilisée dans rTorrent). Le code libtorrent est écrit en C++ et distribué sous licence BSD.

La version se distingue par l'ajout de la prise en charge du protocole BitTorrent v2, qui s'éloigne de l'utilisation de l'algorithme SHA-1, qui pose des problèmes de sélection de collision, au profit de SHA2-256. SHA2-256 est utilisé à la fois pour contrôler l'intégrité des blocs de données et pour les entrées dans les index (info-dictionnaire), ce qui viole la compatibilité avec DHT et les trackers. Pour les liens magnétiques vers des torrents avec des hachages SHA2-256, un nouveau préfixe « urn:btmh: » est proposé (pour les torrents SHA-1 et hybrides, « urn:btih: » est utilisé).

Étant donné que le remplacement de la fonction de hachage interrompt la compatibilité du protocole (le champ de hachage fait 32 octets au lieu de 20 octets), la spécification BitTorrent v2 a été initialement développée sans tenir compte de la compatibilité ascendante et d'autres changements importants ont été adoptés, tels que l'utilisation d'arbres de hachage Merkle dans les index. pour réduire la taille des fichiers torrent et vérifier les données téléchargées au niveau du bloc.

Les modifications apportées à BitTorrent v2 incluent également la transition vers l'attribution d'arbres de hachage distincts à chaque fichier et l'utilisation de l'alignement des fichiers par parties (sans ajouter de remplissage supplémentaire après chaque fichier), ce qui élimine la duplication de données lorsqu'il existe des fichiers identiques et facilite leur identification. différentes sources pour les fichiers. Amélioration de l'efficacité de l'encodage de la structure des répertoires torrent et ajout d'optimisations pour la gestion d'un grand nombre de petits fichiers.

Pour faciliter la coexistence de BitTorrent v1 et BitTorrent v2, la possibilité de créer des fichiers torrent hybrides a été implémentée, qui incluent, en plus des structures avec hachages SHA-1, des index avec SHA2-256. Ces torrents hybrides peuvent être utilisés avec des clients prenant uniquement en charge le protocole BitTorrent v1. En raison de problèmes de stabilité non résolus, la prise en charge attendue du protocole WebTorrent dans libtorrent 2.0 a été retardée jusqu'à la prochaine version majeure, qui ne sortira qu'à la fin de l'année.

Source: linux.org.ru