Выпуск libtorrent 2.0 з падтрымкай пратаколу BitTorrent 2

Прадстаўлены значны выпуск бібліятэкі libtorrent 2.0 (вядомая таксама як libtorrent-rasterbar), якая прапануе рэалізацыю пратаколу BitTorrent, эфектыўную з пункта гледжання спажывання памяці і нагрузкі на CPU. Бібліятэка задзейнічана у такіх торэнт-кліентах, як Патоп, qBittorrent, Folx, рысь, Miro и Прамываць (не блытаць з іншай бібліятэкай libtorrent, якая выкарыстоўваецца ў 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. Чаканая ў libtorrent 2.0 падтрымка пратаколу WebTorrent з-за нявырашаных праблем са стабільнасцю адкладзена да наступнага значнага выпуску, які выйдзе не раней за канец года.

Крыніца: opennet.ru

Дадаць каментар