habrahabr

Новые баги utorrent или что для нас готовят программисты Bittorrent

  • воскресенье, 1 марта 2015 г. в 02:11:51
http://habrahabr.ru/post/251625/

Многие пользователи utorrent переходят на новые версии программы по привычке или до того момента пока у них не перестаёт что-то работать. Кто-то остановился на 2.2.1 или 2.0.4 как последних более-менее стабильных, а кто-то по сей день верен 1.8.2 и даже 1.7.7. Чем же так пугает и привлекает третья версия utorrent? Попробуем проследить и разобраться в изменениях которые были и тех, что ожидают нас в будущем.

image

Эволюция utorrent

Первый мой установленный utorrent был 1.8.2. Как раз то время когда в этих клиентах начинали прикручивать magnet-ссылки. Возможно, ошибки которые допустили программисты utorrent при добавлении этой функции, оказались слишком заметны пользователям 1.7.7 и 1.8.2. Можно сказать, с этого момента стали применяться во многом противоречивые подходы к созданию программы.
Потом разработчики пытались довести до ума альфа версию 1.9, которая имела много новшеств. Из заметных такие как: поддержка udp трекеров, новый utp протокол, приложения, работа дополнительных параметров в магнет-ссылке. Но в стабильный релиз ушла версия 2.0, которую достаточно долго пытались подлатать до версии 2.2.1.
И вот тут начинается самое интересное. С версии 3.0 в программу приходят радикальные изменения, к ним нас подготавливали специальными альфа версиями utorrent под названиями «Falcon» и «Griffin». Но большинство из нас заметило только огромное количество глюков и проблемы в работе жёсткого диска. По этому продолжительное время многие справедливо отказывались переходить с 2.2.1 на 3.х. А нового в 3.х было много:

Достаточно интересной была технология под названием DNA. Под это название пытались впихнуть сразу две задумки:
1. Загрузка файлов через p2p с помощью специальных файлов, которые запускались на компьютере без торрент-клиента, либо их можно было запустить в самом utorrent, при этом в главном окне utorrent появлялся синий значёк DNA (к сожалению скриншот не сохранился). Такие специальные файлы предлагал загрузить своим клиентам например сайт ASUS в разделе загрузок драйверов. Запустив их, пользователь потом мог скачать сами файлы драйверов через p2p.
2. Просмотр видео в встроенном на http странице плеере с частичной подгрузкой из p2p.

Магнет-ссылки понимали новые дополнительные параметры ws (веб-сид) и fl (загрузка торрент-файла по прямой http ссылке)

В клиент был встроен механизм стриминга медиа файлов, когда можно было качать и одновременно смотреть фильм.

Многие провайдеры дождались включённой по умолчанию опции isp.bep22

Кроме работы ip-фильтра в клиенте, юзеры получили возможность создать специальный файл диапазонов приоритетных IP, к которым utorrent подключается в певую очередь. Тем самым, многим получилось значительно повысить скорость загрузки.

Просмотр «рейтингов» и «комментариев».

И наконец, многими забытая, но по сей день ещё работающая возможность передачи файлов друзьям или знакомым из торрент-клиента через специальный прокси-сервер по http протоколу. Который кстати, можно использовать и в качестве прокси веб-сида.
image
Достаточно лишь перетянуть любой файл или папку в окошко программы и utorrent создаст специальную ссылку на http страничку, с которой ваш знакомый не догадывающийся о существовании торрентов и p2p сможет скачать с вашего компьютера файлы даже если вы оба будете за NAT провайдера. К сожалению, судя по всему, скоро разработчики удалят эту настройку из программы, потому как в новых версиях utorrent она работает только под танцы с бубном. Но кто всё ещё хочет вернуть её работоспособность в свой utorrent 3.x измените следующие параметры в скрытых настройках программы.
Нажав и не отпуская SHIFT и F2 зайдите в Настройки----Дополнительно. В самом низу списка найдите и измените значения в строках:
webui.raptor_host — raptor.utorrent.com
webui.raptor_port — 80
webui.raptor_secure — false
webui.talon_host — remote.utorrent.com
webui.talon_port — 80
webui.talon_secure — false
В настройке Удалённый доступ обязательно придумать и вписать имя и пароль, без них работать не будет!

Последующие версии до 3.3.2 включительно можно назвать работой над ошибками. И всё в итоге было бы хорошо со стабильностью программы в будущем… если бы не новые идеи и вместе с ними новый utorrent 3.4

Utorrent 3.4 — забытая революция ?

Думаете после неудач с DNA и raptor.utorrent.com разработчики закинули планы по интеграции торрента и веб в долгий ящик? Как бы не так! Всё начинается по новому кругу. На этот раз utorrent должен превратиться в файловый http сервер, но конечно же со своими p2p особенностями.

Небольшое отступление перед продолжением.
Вы должны понимать, что компания Bittorrent — это коммерческая организация, которой уже давно не интересна децентрализация p2p. Многие фичи в программе исчезают и появляются, а большинство из нас о их существовании даже и не догадывается. Все стремления в разработке utorrent направлены на зарабатывание денег. По этой причине не ожидайте ничего хорошего в новых билдах программы. С огромной вероятностью, всё о чём будет написано ниже, в utorrent 3.5 будет убрано или радикально переделано, то есть пользоваться этим уже вы не сможете.


Из мелких заметных изменений в utorrent 3.4.2 для меня, наверное, будет работа с https веб-сидами (таки Dropbox по прежнему ещё раздаёт некоторые мои торренты на рутрекере) и неотключаемая реклама Pro версии.

Самое интересное скрыто от наших глаз, но если потянуть за «верёвочку», то можно найти и «пощупать» то, что для нас делается сейчас и может быть будет работать в следующих версиях программы.
Первая подсказка спрятана в настройке Playback
image

Дальше нашлась опция копирования ссылки файла
Copy Stream URL
image

Скопированная ссылка получилась такого вида
http://pairing:1B40250178C560733172CE3C811A4ACA831D6FB8@127.0.0.1:15906/proxy?sid=2&file=0&token=1B40250178C560733172CE3C811A4ACA831D6FB8&pairing=1B40250178C560733172CE3C811A4ACA831D6FB8&service=STREAMING">

Вставив эту ссылку в свой браузер — получите проигрывание файла встроенным плеером браузера, либо просто скачивание его в папку загрузок.
В этой ссылке есть несколько параметров связанных с настройками utorrent
webui.allow_pairing
webui.proxy_auth
webui.token_auth
Но так как половина параметров в ссылке не работает (всё что связано с хешами), можно укоротить её до
 http://127.0.0.1:15906/proxy?sid=2&file=0
Если это вставить в браузер, произойдёт то же самое что и с полной ссылкой. Работающие параметры ссылки:
sid= номер торрента (может быть любым, выдаётся utorrent при добавлении торрента).
file= номер файла ( вроде как постоянный, назначается по положению в колонке Путь)
15906 — выбранный порт в настройках utorrent

Вот тут возникает вопрос: «А что с этим всем можно сделать ?» Пока наверно, получится только немного пофантазировать и поэкспериментировать. В принципе можете сами поиграться с этими настройками и посмотреть как они работают. Вот например как можно использовать этот встроенный в программу http-сервер:

Передача файлов на прямую по http
Для этого у вас должен быть белый статический или динамический IP в интернете или хотя бы в локальной сети, а так же проброшен порт указанный в настройках utorrent. В скопированных ссылках 127.0.0.1 нужно заменить на ваш интернет или локальный IP.
http://44.0.5.15:15906/proxy?sid=2&file=0

В зависимости от того собираетесь ли вы передавать файлы всем или избранным, можете включить или отключить в настройках опцию webui.proxy_auth. Если будет включено, перед открытием страницы utorrent может попросить пройти авторизацию. По этому в начале не забудьте вписать имя и пароль в настройках Веб-интерфейса utorrent (гостевой логин не работает)
авторизация
image

Если webui.proxy_auth будет отключён, контент станет доступен всем без выскакивающего окошка авторизации.

Последовательная загрузка и просмотр медиа файлов торрента

Как вы уже вначале догадались, название самой опции «Copy Stream URL» и все скопированные ссылки с IP 127.0.0.1 сделаны только для воспроизведения загружаемого контента на этом же компьютере. Однако зачем разработчикам пришлось делать так сложно (со встроенным http сервером) не совсем понятно…
Интересен сам механизм работы клиента по таким ссылкам. К примеру, вы скачиваете торрент-файл с трекера и запустив его в utorrent ставите задание на остановку (не загружаете), затем копируте ссылку Copy Stream URL какого-нибудь файла из списка и вставляете эту ссылку в свой браузер. Как только браузер переходит по ссылке в utorrent запускается процесс последовательной загрузки частей только этого файла, с постепенной передачей его браузеру. Если в браузере остановить загрузку и/или вообще закрыть программу браузера, utorrent так же отреагирует остановкой задания.
image

база сайта или каталога в p2p сети

Новые возможности utorrent были замечены и The Pirate Bay www.piratebayuk.co.uk/setup.php Но как-то всё сложно у них там с юзабельнстью получается.
Step 2. Install and configure xampp
Download and Install xampp. (Visit the Xampp homepage here). Once Installed go to: Start->All Programs->Apache Friends->XAMPP->XAMPP Control Panel. Then complete the following operations:


К сожалению utorrent работает не совсем как веб-сервер, а скорее как файловый http сервер. Соответственно он может подгружать только файлы из p2p сети, затем браузер забирает из utorrent эти файлы и показывает их на своей странице. В добавок ко всему, загруженный торрент с файлами, на разных utorrent будет иметь различный sid=, но file= должны быть одинаковы так как названия и количество фалов в торренте у всех будет одинаковое.

Для того что-бы перенести сайт в торренты, необходимо сделать механизм глобальной правки sid= в ссылках в виде юзер-скрипта или расширения в браузере, который установит каждый юзер. А так же в торрент-файле необходимо будет поместить невероятно огромную кучу html страничек на каждую раздачу. Другое дело, если на компьютер пользователя будет установлена специальная программа для просмотра, умеющая работать по ссылкам utorrent. В настройках программы пользователь смог бы указать свой sid= торрента. Отображение онлайн раздач на трекере и в специальной программе может быть примерно одинаковым как по виду так и по содержимому. Общий вес загруженных пользователем файлов такого архива будет существенно меньше, чем если бы скачивался весь архив целиком. Юзер не должен и не будет качать/хранить на компьютере темы, которые ему не интересны. А вот раздавать сохранённые у себя части тем которые ему интересны он может.
Содержимое ахива сайта можно разбить на несколько торрент-файлов, а не пихать всё в один. Так в главном торрент-файле будет файл/файлы со всеми ссылками «карты сайта», остальные торрент-файлы будут относиться к определённой категории и хранить в себе как файлы с ссылками на файлы описания (скриншоты, текст, магнет-ссылки и пр.) так и к примеру файлы постеров и скриншотов (хотя, опять же их можно выделить в отдельный торрент-файл(ы), с возможностью указать дополнительные sid= ).
Ах мечты, мечты…

Автоматическое обновление торрент-файлов

К сожалению, эта тема раскрыта и исследована не полностью, так как мои знания в программировании примерно равны нулю.
Может быть, кто-нибудь из вас сможет исследовать эту тему и выяснит как должен работать этот механизм. Буду благодарен, если вы поделитесь своими мыслями по этому поводу.

В utorrent 3.4 была добавлена возможность автоматического обновления задания в клиенте. Так скачав с трекера торрент-файл какого-нибудь сериала, в дальнейшем можно не следить за выходом новых серий и обновлением раздачи на форуме, а сразу получать обновлённый торрент и новые серии.
В процессе создания торрент-файла (специальной программой) или в Свойствах торрента задания utorrent прописывается http ссылка обновления торрент-файла.
image
После перезапуска клиента, возле задания появится синяя «точка», означающая что utorrent периодически опрашивает сайт на предмет загрузки нового торрент-файла.
В самом utorrent можно посмотреть ленту обновлений по каждому торренту (дата и файлы)
image

Разработчики utorrent опубликовали специальный мануал bittorrent.org/beps/bep_0039.html
Так же получилось раздобыть их экспериментальный торрент-файл, который внутри содержит соответсвующие записи в секции info.
внутренности
image

На момент когда я достал этот торрент-файл, по ссылке обновления загружалось
{
   "message": "no update",
   "success": true
}

В переписке с разработчиком utorrent получилось вытянуть только это
For the torrent to be updatable, it has to have either a «collections» key or «similar» key or both, and torrent downloaded by the update-url must be signed by the original torrent's originator.

«collections» key or «similar» key is described in:
www.bittorrent.org/beps/bep_0038.html

update-url is described in:
www.bittorrent.org/beps/bep_0039.html

the signing is described in:
www.bittorrent.org/beps/bep_0035.html

thanks,

-Jeanette

Другие не исследованные настройки utorrent 3.4.х

Одной из интересных опций наверно будет vpn.dark_mode. Если её включить, клиент теряет обычную связь с трекерами и пирами. Что собственно и должно происходить для того, что бы «не палить» IP. Если логически развивать мысль дальше, работать это должно примерно как remote.utorrent.com, с той лишь разницей, что некий сервер должен быть одновременно прокси-сервером и ретрекером. То есть, при включении этой опции utorrent должен качать/раздавать только через этот сервер. При этом другие пиры должны так же, по идее, включить эту опцию.
Однако экспериментально заставить работать эту опцию у меня не получилось.

Загадочной и пугающей настройкой является distributed_share.enable и связанные с ней скрытые настройки (SHIFT+F2). Есть подозрение, что в Bittorrent делают некое подобие социальной сети с элементами p2p…