значителен нов релиз на библиотеката (известна също като libtorrent-rasterbar), предлагаща реализация на протокола BitTorrent, ефективна що се отнася до консумацията на памет и натоварване на CPU. Библиотеката в такива торрент-клиенти като , , , , и (не бива да се бърка с друга библиотека , която се използва в rTorrent). Кодът на libtorrent е написан на C++ и под лиценз BSD.
Релизът е забележителен с поддръжката на протокола , в който се премахва използването на алгоритъма 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
