Вступление к основная версия библиотеки Libtorrent (также известный как libtorrent-rasterbar), достигнув своего нового версия 2.0, который предлагает реализацию BitTorrent, эффективную с точки зрения потребления памяти и использования ЦП.
В этой новой версии выпущен внесены изменения в используемый алгоритм с SHA-1 на SHA2-256, это потому, что у первого есть некоторые проблемы, переход для привязки отдельных хеш-деревьев к каждому файлу и приложение и еще кое-что.
Для тех, кто не знаком с библиотекой, вы должны знать, что она используется торрент-клиентами, такими как Deluge, qBittorrent, Folx, Lince, Miro и Flush (не путать с другой библиотекой libtorrent, используемой rTorrent). Код libtorrent написан на C ++ и распространяется под лицензией BSD.
Основные изменения в libtorrent 2.0
В этой новой выпущенной версии libtorrent 2.0 он выделяется добавлением поддержки протокола BitTorrent v2, который отходит от использования алгоритма SHA-1, который имеет проблемы с выбором коллизий, в пользу SHA2-256. .
С использованием алгоритма SHA2-256 гарантирует как контроль целостности блоков данные как для записей в индексах (инфо-словарь), что нарушает совместимость с DHT и трекерами.
Хотя использование этого алгоритма есть проблемы с магнитными ссылками на торренты, поэтому с хешем SHA2-256, предлагается новый префикс «Urn: btmh:» (для SHA-1 и гибридных торрентов используйте «urn: btih:»).
Поскольку переопределение хеш-функции нарушает поддержку протокола (поле с 32-байтовым хешем вместо 20 байтов), разработка спецификации BitTorrent v2 изначально велась без учета совместимости с предыдущими версиями были внесены и другие существенные изменения состава, такие как использование хеш-дерева Меркла в индексах для уменьшения размеров торрент-файлов и проверка загружаемых данных на уровне блоков.
Изменения в BitTorrent v2 также подчеркивают переход для привязки отдельных хеш-деревьев к каждому файлу и применения выравнивания файлов по частям (без добавления отступов после каждого файла), что позволяет избавиться от повторяющихся данных при наличии идентичных файлов и упрощает определение различных источников файлов.
также Подчеркивается, что эффективность кодирования структуры каталогов в торренте была улучшена и были добавлены оптимизации для обработки большого количества небольших файлов.
Более того, чтобы сгладить сосуществование версии BitTorrent v1 и BitTorrent v2, возможно создание гибридных торрент-файлов которые включают, помимо структур с хешами SHA-1, индексы с SHA2-256.
Эти гибридные торренты можно использовать с клиентами, которые поддерживают только BitTorrent v1.
Наконец, в примечаниях к новой версии также отмечается, что ожидаемая поддержка протокола WebTorrent в libtorrent 2.0 отложена до следующей версии значительный, в котором они упоминают, что он не будет выпущен до конца года (если все заработает) из-за нерешенных проблем со стабильностью.
И ты должен помнить об этом интеграция Предложение WebTorrent в библиотеке libtorrent будет позволяют участвовать в распространении контента не только через браузеры посетителей сайта, но и через стационарные торрент-клиенты с использованием библиотеки libtorrent, включая Deluge и qBittorrent (rTorrent не влияет на изменение, поскольку использует другую библиотеку libtorrent).
Реализация WebTorrent, добавленная в libtorrent, написана на C ++ и при желании может быть перенесена на другие торрент-библиотеки и клиенты (исходный WebTorrent написан на JavaScript).
Следовательно, это они могут формировать гибридные сети с участниками, способными взаимодействовать с сетями на основе BitTorrent и WebTorrent.
Если вы хотите узнать об этом больше о примечании к этой новой выпущенной версии библиотеки libtorrent, вы можете проверить детали, перейдя по следующей ссылке.
Как я читал в другом месте, Google недавно взломал протокол SHA-1 с помощью грубой силы, поэтому сообщество поспешило перейти на SHA-256.