Свободный Торрент-Трекер — возможно ли?

в 15:57, , рубрики: i2p, Peer-to-Peer, Tor, Блог компании Ourtrack, свобода информации, метки: , , ,

Добрый день, уважаемые пользователи. А начну я свой рассказ с отрицательных комментариев ко всем торрент-трекерам, которые сейчас можно найти в глобальной паутине. Совсем не легко ввиду новых «чудо»-законов стало скачивать раздачи. Вот как сейчас построен путь от желания до просмотра желаемого [фильма]:

  1. google -> «скачать [название] торрент»
  2. смотрим несколько блокированных сайтов нашим ув. гос-вом
  3. смотрим порно рекламу
  4. качаем торрент файл (на самом деле это может оказаться ".exe")
  5. при плохом раскладе становимся частью ботнета, если не успеваем понять, что что-то не так
  6. повторяем несколько раз итерации с пункта 1
  7. качаем раздачу
  8. черт, отвратительная озвучка, переходим к п.1

«Используйте тор, i2p или другие прокси» — скажете вы. Но если, допустим, я домохозяйка с тремя детьми — я не то, чтобы не хочу этим заморачиваться, я вообще не знаю об их существовании. Потому как вариантов не посмотреть мегабайт-другой рекламы перед нахождением заветной раздачи я просто не знаю. Да что там домохозяйка — это проблемы вполне опытного пользователя пк.

Вот уже на протяжении некоторого времени мы разрабатываем приложение, которое будет предоставлять пользователю все возможности торрент-трекера, но абсолютно без цензуры**. (Сразу хочу отметить, что разработка некоммерческая, все исходники доступны на github, но об этом чуть позже).

Простота использования для конечного пользователя

  1. Скачал программу (~10 мб)
  2. Ввел поисковый запрос, кнопка «Find»
  3. Получил поисковую выдачу, нажал «скачать», (в данный момент доступно ~1500000 раздач, повзаимствованным тут)
  4. Открылся торрент-клиент по-умолчанию, пошла скачка
  5. без рекламы, без цензуры**

image

Захотели раздать?

  1. Нажали раздать
  2. Заполнили необходимую информацию о раздаче, загрузили торрент, автоматически посчитался размер и hash
  3. Нажали «добавить»
  4. После проверки торрент будет доступен для всех

image

Акцент на usability → max, отсутствие рекламы, отсутствие влияния правительства на список раздач.

Что происходит за ширмой

Реализация представляет из себя клиент-серверное приложение, написанное на Qt.
image
Клиент:

  • при запуске клиент в фоновом режиме создает прокси сервер Tor`а***, к которому подключится клиент
  • запрос уходит на один из серверов на домене .onion, который уже располагается в анонимной сети Tor***
  • клиент и сервер обмениваются информацией (получение/отправка поисковых запросов, добавление раздач...)

Сервер:

  • прослушивает соединения от клиента в сети Tor***
  • обменивается информацией с клиентами и базой торрентов

Устойчивость к блокировкам и просто устойчивость

  • Всех клиентов случайным образом расформировывает по доступным серверам (уменьшаем нагрузку за счет увеличения серверов)
  • Сервер слушает в анонимной сети Tor, что гарантирует его анонимность. Т.е. по сути никто не знает физического расположения серверов

Что реализовано в данный момент

  • Соединение к одному из доступных серверов (список серверов можно задавать вручную в hosts.ini)
  • При запуске программы показываются последние 100 загруженных (и одобренных) раздач
  • Спарсено для поиска ~1500000 раздач, взятые тут
  • К каждой раздаче отображается количество лайков (можно оставить), загрузок, html описание, дата, итд
  • Возможность добавлять раздачи, поддержка html шаблонов описаний для категорий (можете редактировать в template/[имя].html)

Что в планах на ближайшее будущее

  • Авторизация пользователей, полная поддержка профиля
  • Добавление социальных возможностей (чаты, форумы, запросы… пока думаем)
  • Поддержка сразу нескольких анонимных сетей
  • Переход на децентрализованное решение

Чем отличается от...

  • Мы — некоммерческий проект
  • Отсутствие цензуры**
  • Отсутствие рекламы
  • Usability
  • Вся работа через анонимную сеть Tor

Что мы получаем? Все возможности торрент-трекера без каких-либо дополнительных манипуляций с прокси, впн… отсутствие рекламы, отсутствие «глаза правительства».

Минусы системы...

  • Централизация (есть идеи ухода от нее)
  • Время ожидания запроса достаточно велико (3-7 сек), т.к. общение идет через Tor
  • Система позволяет сделать анонимными только серверы

Все проблемы решаемы и мы попытаемся прийти к логическому завершению того, как это должно выглядеть.

** Под «абсолютно без цензуры» и «без модерации» не следует воспринимать буквально, аморальный материал (н-р дтске прно) должно фильтроваться.
*** Tor может быть заменен на любую другую анонимную сеть, все упоминания просто для примера.
**** MySQL бд также была выбрана для примера и на ней проводятся тесты. Легко заменяется на другую.

Спасибо за проявленный интерес. В следующей статье будет подробное разобран код, объяснено как все работает. Думаю тогда уже будет полноценный релиз. Все это с целью найти и исправить ошибки, найти единомышленников и создать что-то новое, анонимное и безопасное.

Распространение

Теперь интересно, в каком виде все это распространять. Естественно полагать, что содержать нам серверы — значит подставлять себя под удар. Лучше мы будем просто разработчиками, которые выпускают данный продукт. Однако содержать сервера мы думаем передать третьим лицам, если таковые найдутся. В любом случае, этот вопрос еще в доработке. Если вас заинтересовала наша идея, то см. ниже. В любом случае, к релизу решение будет найдено.

Информация

Сайт: ourtrack.ru
Подписаться на нашу компанию: habrahabr.ru/company/ourtrack/
Github: github.com/farcost/ourtrack
Почта: ifarcost@gmail.com
jabber: farcost@jabber.ru

P.S. В разработке принимает участие 2-е студентов, потому будьте снисходительны к коду и возможным ошибкам.
P.S.S. Спасибо хабру за "Помощь стартапам", под который мы успешно попали.

Благодарю пользователей чата altroism.org/chat за проявленную помощь.
Благодарю разработчиков "Спасем крупнейшую медиатеку в рунете. Вся база rutracker у Вас на компьютере" за раздачи с описанием и некоторые функции ковертации

Автор: farcost

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js