Випуск libtorrent 2.0 із підтримкою протоколу BitTorrent 2

представлений значний випуск бібліотеки libtorrent 2.0 (відома також як libtorrent-rasterbar), що пропонує реалізацію протоколу BitTorrent, ефективну з точки зору споживання пам'яті та навантаження на CPU. Бібліотека задіяна у таких торрент-клієнтах, як Потік, qBittorrent, Фолкс, Рись, Miro и Промивати (не плутати з іншою бібліотекою лібторрентяка використовується в rTorrent). Код libtorrent написаний мовою C++ та поширюється під ліцензією BSD.

Випуск чудовий додаванням підтримки протоколу BitTorrent v2, в якому здійснено уникнення використання алгоритму SHA-1, що має проблеми з підбором колізій на користь SHA2-256. SHA2-256 застосовується як контролю цілісності блоків даних, так записів в індексах (info-dictionary), що порушує сумісність з DHT і трекерами. Для магнітних посилань на торренти з хешами SHA2-256 запропоновано новий префікс «urn:btmh:» (для SHA-1 та гібридних торентів використовується «urn:btih:»).

Так як заміна функції хешування порушує сумісність протоколу (поле з хеш 32 байта замість 20 байт) розробка специфікації BitTorrent v2 спочатку велася без огляду на зворотну сумісність і до складу були прийняті інші істотні зміни, такі як використання хеш-дерева Меркла в індексах для скорочення розміру torrent-файлів та перевірки завантажених даних на рівні блоків.

Зі змін у BitTorrent v2 також виділяється перехід до прив'язки окремих хеш-дерев до кожного файлу та застосування вирівнювання файлів частинами (без додавання додаткового заповнення після кожного файлу), що дозволяє позбутися дублювання даних за наявності однакових файлів та спрощує виявлення різних джерел для файлів . Підвищено ефективність кодування структури каталогів у торренті та додано оптимізації для обробки великої кількості дрібних файлів.

Для згладжування співіснування BitTorrent v1 та BitTorrent v2 реалізовано можливість створення гібридних torrent-файлів, які включають крім структур з хешами SHA-1, індекси з SHA2-256.
Зазначені гібридні торенти можуть використовуватися з клієнтами, які підтримують лише протокол BitTorrent v1. Очікувана підтримка протоколу WebTorrent в libtorrent 2.0 через невирішені проблеми зі стабільністю відкладено до наступного значного випуску, що вийде не раніше кінця року.

Джерело: opennet.ru

Додати коментар або відгук