значителен ъпдейт на библиотеката (известна и като libtorrent-rasterbar), предлагаща реализация на протокола BitTorrent, ефективен по отношение на консумация на памет и натоварване на CPU. Библиотеката в такива torrent клиенти като , , , , и (не трябва да се бърка с друга библиотека , която се използва в rTorrent). Кодът на libtorrent е написан на C++ и под лиценз BSD.
ъпдейтът е забележителен с поддръжка на протокола , в който е осъществена смяна на алгоритъма от SHA-1, който има проблеми с колизията, в полза на SHA2-256. SHA2-256 се прилага както за контрол на целостта на данни, така и за записи в индексите (info-dictionary), което нарушава съвместимостта с DHT и trackers. За magnet линковете на torrenty с SHA2-256 е предложен нов префикс "urn:btmh:" (за SHA-1 и хибридни torrents се използва "urn:btih:").
Тъй като смяната на хеш функцията нарушава съвместимостта с протокола (поле с хеш 32 байта вместо 20 байта), разработката на спецификацията на BitTorrent v2 първоначално е била водена без оглед на обратната съвместимост, а също така са приети и други съществени промени, като употребата на Merkle хеш дървета в индексите за намаляване на размера на torrent файловете и проверка на заредените данни на ниво блокове.
От промените в BitTorrent v2 също така се отличава преходът към привързване на отделни хеш дървета за всеки файл и прилагане на подравняване на файловете по части (без добавяне на допълнително запълване след всеки файл), което позволява на елиминирането на дублиращи се данни при наличие на еднакви файлове и улеснява изявяването на различни източници за файловете. Повишена е ефективността на кодиране на структурата на каталогите в torrent файла и са добавени оптимизации за обработката на голямо количество малки файлове.
За смекчаване на съвместимостта между BitTorrent v1 и BitTorrent v2 е реализирана възможността за създаване на хибридни torrent файлове, които включват, освен структури с хешове SHA-1, индекси с SHA2-256.
Посочените хибридни торенти могат да се използват с клиенти, поддържащи само протокола BitTorrent v1. Очакваната в libtorrent 2.0 поддръжка на протокола WebTorrent поради нерешени проблеми със стабилността ще се въведе до следващия значителен ъпдейт, който ще бъде след края на годината.
Източник: opennet.ru
