Что такое хеш-ошибка в торренте
Обновлено: 21.11.2024
Когда клиент может разрешить одну одновременную загрузку и добавляется торрент, он сначала хеширует, а затем переходит в состояние очереди.
Проблема заключается в том, что если вы добавляете торренты с одними и теми же файлами с нескольких трекеров, проверка хэшей начинается немедленно, в результате чего дополнительно добавленные торренты останавливаются в различных проверенных состояниях, а затем повторно загружаются те же данные еще раз.
В настоящее время: Добавить торрент > Проверка хэша файлов > В очереди > Скачать
Ожидается: Добавить торрент > В очереди > Проверка хэша файлов > Скачать
Есть ли причина для текущего поведения или что-то, что может быть изменено или настроено пользователем?
Текст был успешно обновлен, но возникли следующие ошибки:
Прокомментировал MutatedHero 28 апреля 2017 г.
На данный момент я создал скрипт для решения этой проблемы. В Deluge у меня есть возможность запускать скрипт при добавлении торрента. Теперь происходит следующее:
Добавить торрент в состоянии паузы > Проверить, существует ли торрент с таким же именем со статусом «Загрузка» или «Проверка» > Если да, подождите 30 секунд и повторите попытку > Если ничего из вышеперечисленного не найдено, перепроверьте торрент и возобновить.
Если бы что-то подобное было реализовано, я думаю, что большинство сочло бы это полезным. То есть, если можно написать цикл так, чтобы он не был ресурсоемким. Например, если добавленный торрент находит подходящее имя торрента, он ожидает, пока загружаемый торрент отправит статус завершения загрузки.
arvidn прокомментировал 28 апреля 2017 г.
позвольте мне понять проблему. Вы добавляете торрент и ожидаете, что он будет проверен, но вместо этого он поставлен в очередь. Предположительно, это связано с тем, что уже проверяется другой торрент, который нужно дождаться.
Если нет, то что заставляет его выйти из состояния очереди и начать проверку хэша?
Вы можете изменить это поведение, чтобы всегда проверять хеш-значения всех торрентов, которые должны выполняться параллельно, прежде чем они смогут быть запущены (и поставлены в очередь на загрузку). Просто увеличьте значение active_checking до некоторого большого значения.
Или это не то поведение, которое вам нужно?
Seeker2 прокомментировал 29 апреля 2017 г.
Прокомментировал MutatedHero 29 апреля 2017 г.
@Seeker2 Похоже, это не связано с проблемой, которую я пытаюсь описать.
@arvidn Давайте посмотрим, смогу ли я описать проблему лучше, чем в первом сообщении.
Моя первоначальная проблема
Я добавляю торрент с Tracker1 в свой клиент. Он начинает загружать файлы, и все в порядке. Через минуту добавляю торрент с тем же именем и файлами с Трекера2 и выбираю тот же путь скачивания. Торрент с Tracker two теперь выполняет проверку хэша и достигает объема, который в данный момент был загружен торрентом с Tracker1.
Когда проверка торрента с Tracker2 завершена, он начинает загрузку с проверенного состояния, которое составляет, скажем, 20%. Теперь у меня есть два торрента, которые скачивают одни и те же файлы в одну и ту же папку. В конце концов, вы получите сообщение об ошибке, потому что они попытаются получить доступ к тому же блоку, и потребуется ручное вмешательство в виде ожидания завершения все еще работающего торрента, а затем перепроверить тот, который не работает.
Моя первая попытка обойти проблему, из-за которой я создал эту проблему
Затем я решил, что если я позволю загружать не более одного торрента за раз, это решит мою проблему. Это не так, потому что как только я добавляю торрент с Трекера2, он начинает проверять хэш. Теперь у меня есть загрузка торрента Tracker1 и хэш торрента Tracker2 проверены и поставлены в очередь на 20% от общего количества загрузок. Как только Tracker1 завершит работу, Tracker2 начнет загрузку без очередной проверки хеш-функции, что заставит его загрузить остальные 80% без какой-либо причины, поскольку файлы уже там..
Решение
Глядя на это таким образом, может быть две проблемы, обе из которых должны быть решены, чтобы он работал, когда клиент настроен по умолчанию.
Первое можно решить, добавив проверку на добавление торрента в виде: Если торрент добавлен, а у клиента уже есть торрент с таким же именем и путем загрузки, который в настоящее время имеет любой другой статус, кроме раздачи или завершения, он должен войти в состояние очереди.
Мы также должны убедиться, что он не проверяется на хэш перед переходом в состояние очереди, что и происходит в настоящее время. Проверка хэша должна выполняться при возобновлении работы, а не при добавлении в очередь.
Надеюсь, это прояснит ситуацию. Если нет, то я могу попытаться снять видео проблемы. Но в основном вы увидите проблему добавления двух торрентов с двух трекеров с использованием одного и того же имени и пути загрузки. Один закончит, а другой нет. И невозможно обойти проблему, разрешив только одну загрузку за раз.
Seeker2 прокомментировал 29 апреля 2017 г.
@Seeker2 Похоже, это не связано с проблемой, которую я пытаюсь описать.
Проблема, которую я описал, не позволяет найти возможное решение вашей проблемы.
В qBT, если вы пытаетесь добавить торренты в остановленном/приостановленном состоянии, а затем пытаетесь проверить их перед запуском. qBT (и, возможно, Deluge) остановит этот торрент и начнет загрузку с проверкой хэша, перезаписав все, что уже было загружено в этих файлах.
Прокомментировал MutatedHero 29 апреля 2017 г.
@Seeker2 Я не сталкивался с libTorrent в Deluge. Если поставить на паузу и принудительно выполнить повторную проверку, я никогда не видел, чтобы он начинал загрузку/выгрузку.
Seeker2 прокомментировал 29 апреля 2017 г. •
Хорошо, тогда моя проблема связана с ошибкой qBitTorrent, а не с ошибкой Deluge или libtorrent.
arvidn прокомментировал 30 апреля 2017 г.
@MutatedHero спасибо, это определенно проясняет ситуацию. Основная проблема здесь в том, что два разных торрента не должны скачиваться в одни и те же файлы.
Несмотря на то, что имена файлов могут быть одинаковыми, два торрента имеют разные информационные хэши, что означает, что содержимое этих файлов может быть разным (и нетривиально определить, являются ли они одинаковыми или нет, если только фрагменты не являются одинакового размера и одинакового выравнивания). То, что вы пытаетесь сделать, — это попасть на территорию изменяемых торрентов (где файлы, загруженные с одного торрента, могут быть повторно использованы для другого).
«Слепое» добавление двух разных торрентов с одинаковыми именами и файлами в один и тот же каталог загрузки не является надежным. Это цель упомянутой вами ошибки («В конце концов, вы получите сообщение об ошибке, потому что попытаетесь получить доступ к одному и тому же блоку»). Эта ошибка возникает в libtorrent, который проверяет, чтобы ни один другой торрент не открыл такой же файл (по крайней мере, я думаю, что он все еще может это делать, по крайней мере, в какой-то момент). Эта проверка предназначена именно для обнаружения таких ошибок.
Следствием загрузки нового торрента поверх существующего является то, что если биты во втором торренте отличаются, первый торрент начнет раздавать поврежденные данные.
Теперь обратимся к тому, что вы на самом деле хотите сделать. Похоже, вы в основном хотели бы убедиться, что «загрузка» + «проверка» никогда не превышает 1. В libtorrent нет встроенного контроллера для этого, и я бы сказал, что это необычный сценарий.
Клиент может реализовать любое поведение очереди, никогда не устанавливая автоматическое управление, и это похоже на логику, которая не относится к сфере действия libtorrent.
@Seeker2 есть ли отчет об ошибке libtorrent для того, что вы описываете? или это не считается ошибкой libtorrent? Если это необходимо исправить в libtorrent, отправьте отдельный запрос.
Прокомментировал MutatedHero 30 апреля 2017 г.
Я не думаю, что пользователи загружают одни и те же файлы с нескольких трекеров, где некоторые байты различаются, но я определенно понимаю вашу точку зрения.
"Следствием загрузки нового торрента поверх существующего является то, что если биты во втором торренте отличаются, первый торрент начнет раздавать поврежденные данные".
Это это то, о чем я тоже думал. Было бы неплохо, если бы клиент мог загружать разные блоки в отдельную папку или файлы либо в той же структуре, либо по указанному пути. Это просто то, что сэкономит место, поскольку тогда вы избежите создания двух копий одного и того же объекта.
Что если изменить так, чтобы торрент не проверял хэш при добавлении в очередь, как указано в теме? На мой взгляд, ничего не следует делать с торрентом, когда он стоит в очереди, поэтому проверка начинается после возобновления торрента.
arvidn прокомментировал 30 апреля 2017 г.
Было бы неплохо, если бы клиент мог загружать разные блоки в отдельную папку или файлы либо в той же структуре, либо по указанному пути. Это просто то, что сэкономит место, поскольку тогда вы избежите создания двух копий одного и того же.
Да, согласен. На самом деле, в libtorrent есть некоторая базовая поддержка для этого. Обычно его называют изменяемым торрентом. Однако iirc в его нынешнем виде требует сотрудничества со стороны создателя файла .torrent (чтобы указать, с какими торрентами он может обмениваться файлами). Возможно, пользователю было бы полезно предоставить этот список или выполнить исчерпывающий поиск. Однако для этого по-прежнему требуются одинаковые размеры фрагментов и файлы, выровненные по фрагментам (т. е. пэд-файлы). Изменяемые торренты (в их нынешнем виде) — это прежде всего функция, которой могут воспользоваться создатели торрентов. Например, интернет-архив.
Также нет хорошей поддержки (или защиты от) совместного использования торрент-файлов при одновременной загрузке одних и тех же файлов. Предположение об изменяемых торрентах заключалось в том, что они загружаются последовательно. (патчи приветствуются!)
Как насчет того, чтобы торрент не проверял хэш при добавлении в очередь, как указано в теме? Насколько я понимаю, ничего не следует делать с торрентом, когда он поставлен в очередь, поэтому проверка начинается после возобновления торрента.
Очередь в libtorrent состоит из двух очередей: одной для проверки и одной для скачивания. По умолчанию одновременно проверяется только один торрент (из-за чего другие торренты требуют проверки в очереди за ним). Таким образом, поток выглядит примерно так:
Различные ограничения, которые вы можете настроить, ограничивают количество торрентов в режимах "проверка", "загрузка" и "раздача", и торренты ставятся в очередь, чтобы обеспечить это соблюдение.
Какой бы веб-сайт вы ни использовали для загрузки контента через uTorrent, процесс обычно одинаков. Вы нажимаете на магнитную ссылку, подтверждаете загрузку или выбираете файлы в папке и ждете загрузки данных на ваше устройство.
Однако у вас может быть информационный хэш файла, который вы можете использовать для загрузки, особенно на веб-сайтах, которые требуют создания учетной записи для загрузки файлов. Если вы хотите узнать, как добавить информационный хеш в программу торрента, эта статья поможет вам.
Скачивание торрентов через Info Hash
У вас случайно нет информационного хэша, принадлежащего торренту? Если это так, вы можете использовать этот код для загрузки файлов без доступа к каким-либо популярным веб-сайтам. Вы также можете наткнуться на файл, который хотите скачать, но не можете найти магнитную ссылку, чтобы получить его обычным способом. Здесь пригодится информационный хеш.
Кроме того, многие торрент-сайты позволяют загружать файлы без создания учетной записи. Скажем, вы наконец нашли нужный торрент на сайте, который требует от вас регистрации перед загрузкой. Но можно и не зарегистрироваться. Если это так, вы можете выполнить следующие шаги, чтобы загрузить фильм или игру, используя информационный хеш. Некоторые веб-сайты даже отображают этот код в информации о торренте, к которой вы можете получить доступ до создания учетной записи.
Независимо от того, каким образом вы получили информационный хэш, вот как добавить его в uTorrent и скачать нужный файл:
Где найти информационный хеш
Где вы найдете информационный хэш, зависит от веб-сайта, с которого вы загружаете файлы. Возможно, вы получили хэш информации от друга или скопировали его из обсуждения на форуме. Кроме того, вы могли найти его на торрент-сайте. Например, если вы используете Pirate Bay, введите имя нужного файла в поле поиска. Затем выберите его в результатах поиска. Когда вы откроете файл, вы увидите более подробную информацию о нем, а также информационный хеш.
Имейте в виду, что вы можете скачать с Pirate Bay без регистрации на сайте.
Вы также можете увидеть информационный хэш после начала загрузки файла. Если вам когда-нибудь понадобится предоставить кому-то этот код, вы можете найти его в uTorrent вместо того, чтобы искать его снова и снова. Вот как:
- Откройте uTorrent на своем компьютере.
- Выберите нужный торрент из списка загруженных файлов.
- Под этим списком выберите «Информация» на панели параметров.
- Прокрутите вниз, и среди других сведений о торренте вы увидите Hash.
- Нажмите правой кнопкой мыши на информационный хэш, чтобы скопировать его.
Создание магнитной ссылки
Еще один способ — использовать информационный хэш для создания магнитной ссылки для загрузки торрента. Вот как это сделать:
Магнитные ссылки и информационный хеш
Информационный хэш содержит всю необходимую информацию и содержимое торрента: его имя и другие данные, необходимые для его загрузки. Когда у вас есть информационный хэш торрент-файла, вам больше ничего не нужно.
Если ваш информационный хэш не работает, попробуйте преобразовать его в магнитную ссылку и добавить в uTorrent, чтобы завершить загрузку. Если и это не помогает, просто попробуйте найти другой веб-сайт, с которого можно загрузить файл, или найдите другой работающий информационный хэш.
Как вы обычно загружаете файлы? Вы когда-нибудь использовали информационный хэш? Дайте нам знать в разделе комментариев ниже.
Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.
Закрыт 4 года назад.
Проблема:
Я продолжаю получать ошибки Hash: Element not found.
- uTorrent 3.2.3 (последняя на момент написания этой статьи)
- Запущено около 30 торрентов (все скачиваются)
Симптомы:
- Принудительная повторная проверка отключена (иногда)
- Когда я возобновляю работу торрента, он останавливается, когда это происходит, и продолжает плавно до следующей ошибки Hash: Element not found
- Это не происходит в определенном %age
Попытки решения:
Много искал в Интернете, чтобы найти несколько ниже
Ничего из этого не сработало!
3 ответа 3
Я получил эту ошибку, когда на моем жестком диске закончилось место на диске, поэтому я думаю, что это связано с какой-то проблемой доступа к файлу/диску, в зависимости от того, куда вы записываете
Я пытался загрузить несколько больших файлов на сетевой диск (с Windows XP на Samba) и получил ту же ошибку "Элемент не найден".
В моем случае включение дискового кеша решило проблему. Мне пришлось снять флажки с параметров Отключить кэширование записи на диск в Windows и Отключить кэширование чтения с диска в Windows в разделе Параметры uTorrent -> Настройки -> Дополнительно -> Кэш диска (таким образом включив кэш).
Я действительно думаю, что этот вопрос принадлежит SuperUser.
Забавно, что загрузка торрентов на сетевой диск SAMBA выполняется так редко, что в большинстве моих запросов люди просто говорят мне, что проблема связана с жестким диском, но, конечно, это не так, потому что, когда я подключаю его напрямую к компьютеру, он не было никаких проблем. Это маленькое исправление, кажется, сделало это для версии 2.2.1. Потрясающе и спасибо!
Рабочее решение оказалось довольно простым.
Мой антивирус незаметно помещал в карантин несколько подозрительных файлов.
Эти файлы добавлены в список исключений.
Какой бы веб-сайт вы ни использовали для загрузки контента через uTorrent, процесс обычно одинаков. Вы нажимаете на магнитную ссылку, подтверждаете загрузку или выбираете файлы в папке и ждете загрузки данных на ваше устройство.
Однако у вас может быть информационный хэш файла, который вы можете использовать для загрузки, особенно на веб-сайтах, которые требуют создания учетной записи для загрузки файлов. Если вы хотите узнать, как добавить информационный хеш в программу торрента, эта статья поможет вам.
Скачивание торрентов через Info Hash
У вас случайно нет информационного хэша, принадлежащего торренту? Если это так, вы можете использовать этот код для загрузки файлов без доступа к каким-либо популярным веб-сайтам. Вы также можете наткнуться на файл, который хотите скачать, но не можете найти магнитную ссылку, чтобы получить его обычным способом. Здесь пригодится информационный хеш.
Кроме того, многие торрент-сайты позволяют загружать файлы без создания учетной записи. Скажем, вы наконец нашли нужный торрент на сайте, который требует от вас регистрации перед загрузкой. Но можно и не зарегистрироваться. Если это так, вы можете выполнить следующие шаги, чтобы загрузить фильм или игру, используя информационный хеш. Некоторые веб-сайты даже отображают этот код в информации о торренте, к которой вы можете получить доступ до создания учетной записи.
Независимо от того, каким образом вы получили информационный хэш, вот как добавить его в uTorrent и скачать нужный файл:
Где найти информационный хеш
Где вы найдете информационный хэш, зависит от веб-сайта, с которого вы загружаете файлы. Возможно, вы получили хэш информации от друга или скопировали его из обсуждения на форуме. Кроме того, вы могли найти его на торрент-сайте. Например, если вы используете Pirate Bay, введите имя нужного файла в поле поиска. Затем выберите его в результатах поиска. Когда вы откроете файл, вы увидите более подробную информацию о нем, а также информационный хеш.
Имейте в виду, что вы можете скачать с Pirate Bay без регистрации на сайте.
Вы также можете увидеть информационный хэш после начала загрузки файла. Если вам когда-нибудь понадобится предоставить кому-то этот код, вы можете найти его в uTorrent вместо того, чтобы искать его снова и снова. Вот как:
- Откройте uTorrent на своем компьютере.
- Выберите нужный торрент из списка загруженных файлов.
- Под этим списком выберите «Информация» на панели параметров.
- Прокрутите вниз, и среди других сведений о торренте вы увидите Hash.
- Нажмите правой кнопкой мыши на информационный хэш, чтобы скопировать его.
Создание магнитной ссылки
Еще один способ — использовать информационный хэш для создания магнитной ссылки для загрузки торрента. Вот как это сделать:
Магнитные ссылки и информационный хеш
Информационный хэш содержит всю необходимую информацию и содержимое торрента: его имя и другие данные, необходимые для его загрузки. Когда у вас есть информационный хэш торрент-файла, вам больше ничего не нужно.
Если ваш информационный хэш не работает, попробуйте преобразовать его в магнитную ссылку и добавить в uTorrent, чтобы завершить загрузку. Если и это не помогает, просто попробуйте найти другой веб-сайт, с которого можно загрузить файл, или найдите другой работающий информационный хэш.
Как вы обычно загружаете файлы? Вы когда-нибудь использовали информационный хэш? Дайте нам знать в разделе комментариев ниже.
Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.
Закрыт 4 года назад.
Проблема:
Я продолжаю получать ошибки Hash: Element not found.
- uTorrent 3.2.3 (последняя на момент написания этой статьи)
- Запущено около 30 торрентов (все скачиваются)
Симптомы:
- Принудительная повторная проверка отключена (иногда)
- Когда я возобновляю работу торрента, он останавливается, когда это происходит, и продолжает плавно до следующей ошибки Hash: Element not found
- Это не происходит в определенном %age
Попытки решения:
Много искал в Интернете, чтобы найти несколько ниже
Ничего из этого не сработало!
3 ответа 3
Я получил эту ошибку, когда на моем жестком диске закончилось место на диске, поэтому я думаю, что это связано с какой-то проблемой доступа к файлу/диску, в зависимости от того, куда вы записываете
Я пытался загрузить несколько больших файлов на сетевой диск (с Windows XP на Samba) и получил ту же ошибку "Элемент не найден".
В моем случае включение дискового кеша решило проблему. Мне пришлось снять флажки с параметров Отключить кэширование записи на диск в Windows и Отключить кэширование чтения с диска в Windows в разделе Параметры uTorrent -> Настройки -> Дополнительно -> Кэш диска (таким образом включив кэш).
Я действительно думаю, что этот вопрос принадлежит SuperUser.
Забавно, что загрузка торрентов на сетевой диск SAMBA выполняется так редко, что в большинстве моих запросов люди просто говорят мне, что проблема связана с жестким диском, но, конечно, это не так, потому что, когда я подключаю его напрямую к компьютеру, он не было никаких проблем. Это маленькое исправление, кажется, сделало это для версии 2.2.1. Потрясающе и спасибо!
Рабочее решение оказалось довольно простым.
Мой антивирус незаметно помещал в карантин несколько подозрительных файлов.
Эти файлы добавлены в список исключений.
Читайте также: