Развёртывание βtracker в сети Yggdrasil: автоматизированный BitTorrent-трекер на Rust без модерации и центра

 


Инструкция по развёртыванию инфраструктуры βtracker



Практический гайд по запуску автономного BitTorrent-агрегатора в сетях нового типа — без модераторов, без ручной возни и с уважением к архитектуре P2P.


Похоже, что подробная инструкция по развёртыванию актуальной версии βtracker существовала в единственном экземпляре — когда-то написанном для проекта howto.ygg и затем благополучно утерянном. Собственный инстанс уже выключен, но на случай внезапного возвращения интереса (и, что важнее, для других энтузиастов) этот гайд публикуется заново.

Материал является прямым дополнением к предыдущему анонсу.
βtracker — это BitTorrent-агрегатор, реализованный на #Rust, и альтернативная ветка развития YGGtracker. По сути, это программный комплекс для полностью автоматического трекинга и агрегации торрентов: без модераторов, без ручного добавления раздач и без «каталожной бюрократии». Чистая #Automation и предельная #Decentralization.

Система изначально проектировалась под сеть #Yggdrasil, но спокойно работает и в любой среде с поддержкой #IPv4 / #IPv6, включая гибридные сценарии. Для добавления торрентов пользователю достаточно прописать в своём клиенте трекеры, ассоциированные с агрегатором — дальше инфраструктура делает всё сама. Это честный #P2P, без центральной точки принятия решений и без ручного контроля контента.

Ниже — подробный разбор архитектуры, принципов работы и пошаговая инструкция по установке всех компонентов комплекса.



Литперевод, с интеграцией хэштегов


Инструкция по развёртыванию инфраструктуры βtracker | DevZone

#DeployGuide #βtracker #BitTorrent #Yggdrasil #Rust

7 min. reading
28 ноября

Похоже, инструкцию по развёртыванию актуальной версии βtracker я писал в единственном экземпляре — для проекта howto.ygg — и благополучно забыл сохранить локальную копию. Свой инстанс я уже отключил, но на случай, если передумаю (и для других пользователей), публикую гайд ниже.
Это дополнение к предыдущему анонсу:
βtracker — BitTorrent-агрегатор на базе Rust.

βtracker — альтернативная ветка разработки YGGtracker, представляющая собой программный комплекс для автоматического трекинга и агрегации торрентов без участия модераторов и без ручного добавления раздач в каталог.
#Decentralization #NoModeration #Automation

Система создавалась для сети Yggdrasil, но может работать и в любой другой среде, поддерживающей стек IPv4/IPv6, а также в гибридном режиме.
Для добавления торрентов в каталог пользователю достаточно прописать в своём клиенте трекеры, ассоциированные с агрегатором.
#OverlayNetworks #IPv6 #P2P


Состав комплекса

#Architecture #TrackerStack

  • aquatic_udp форк UDP-трекера Aquatic с поддержкой генерации бинарного дампа info-hash

  • aquatic-crawler — сканер, который получает дамп info-hash через API и загружает контент для предпросмотра (jpeg, txt, log и др.) с использованием regex-фильтров и дополнительных параметров

  • βtracker — веб-интерфейс для базы данных файлов aquatic-crawler с поиском и scrape-статистикой активных пиров

  • btracker-gemini — опциональная реализация части каталога для протокола Gemini
    #Rust #Gemini #WebUI


Принцип работы (схема)

torrent client > aquatic_udp > infohash.bin < aquatic-crawler > * /preload/info-hash.torrent > β

torrent client               <-----------------------|          * /preload/info-hash/data      |

               <-------------------------------------|          * /preload/.info-hash/tmp      |

                             <-------------------------- scrape -------------------------------|



Установка

#Installation #Linux #SelfHosting

Для сборки потребуется среда разработки Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh


  • рекомендуется выбирать минимальную установку, если сборка производится на сервере

Все компоненты запускаются от отдельного системного пользователя:

useradd -m btracker


Общая файловая база (заполняемая aquatic-crawler и читаемая Web-UI):

mkdir -p /var/www/btracker



aquatic_udp

#Tracker #UDP #Yggdrasil

git clone https://github.com/YGGverse/aquatic.git

cd aquatic

git checkout info-hash-api

cargo build --release -p aquatic_udp

sudo install target/release/aquatic_udp /usr/local/bin/aquatic_udp


Пример конфигурации:

[network]

use_ipv4 = false

use_ipv6 = true

address_ipv6 = "[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:6969"

set_only_ipv6 = true


[statistics]

write_bin_to_file = true

bin_info_hash_ipv6_file_path = "/path/to/hash.bin"


systemd-юнит:

[Unit]

After=network-online.target

Wants=network-online.target


[Service]

Type=simple

User=btracker

Group=btracker

ExecStart=/usr/local/bin/aquatic_udp -c /home/btracker/aquatic_udp.toml


[Install]

WantedBy=multi-user.target


Запуск:

  • systemctl enable aquatic-udp

  • systemctl start aquatic-udp

Разрешаем входящие подключения только из сети Yggdrasil:

ufw allow from 0200::/7 to 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 port 6969 proto udp



aquatic-crawler

#Crawler #Indexing #Metadata

git clone https://github.com/YGGverse/aquatic-crawler.git

cd aquatic-crawler

cargo build --release

sudo install target/release/aquatic-crawler /usr/local/bin/aquatic-crawler


systemd-юнит:

[Unit]

After=network.target

Wants=network.target


[Service]

Type=simple

User=btracker

Group=btracker

LimitNOFILE=65536

Environment="RUST_LOG=aquatic_crawler=warn"

Environment="NO_COLOR=1"


ExecStart=/usr/local/bin/aquatic-crawler \

  --infohash=/path/to/hash.bin \

  --tracker=udp://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:6969 \

  --preload=/var/www/btracker/public \

  --preload-max-filesize=10000000 \

  --preload-max-filecount=5 \

  --preload-regex=\.(png|gif|jpeg|jpg|webp|svg|log|nfo|txt)$


[Install]

WantedBy=multi-user.target


Полезно знать:

  • приватность: можно ограничить librqbit через PEX с помощью --blocklist

  • все опции: aquatic-crawler --help

После запуска crawler сканирует hash.bin и наполняет каталог данными для интерфейса βtracker.
Дополнительные детали — в wiki.
#Privacy #ThreatModel


btracker

#WebCatalog #Search #Scrape

git clone https://github.com/yggverse/btracker.git

cd btracker

cargo build --release

sudo install target/release/btracker /usr/local/bin/btracker


systemd-юнит:

[Unit]

After=network.target

Wants=network.target


[Service]

Type=simple

User=btracker

Group=btracker

WorkingDirectory=/var/www/btracker


ExecStart=/usr/local/bin/btracker \

  --description="Yggdrasil-only BitTorrent tracker" \

  --port=1234 \

  --public=/var/www/btracker/public \

  --scrape=udp://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:6969 \

  --tracker=udp://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:6969 \

  --tracker=udp://tracker.ygg:6969


StandardOutput=null

StandardError=file:///path/to/error.log


[Install]

WantedBy=multi-user.target



nginx

#ReverseProxy #Infrastructure

server {

    listen 80;


    location / {

        proxy_pass http://127.0.0.1:1234;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}


Применение конфигурации:

systemctl reload nginx



Заметили ошибку?
Выделите проблемный фрагмент и нажмите Ctrl+Enter, чтобы уведомить автора.
#Feedback #OpenSource

Целевая аудитория

Материал ориентирован на технически подготовленных пользователей, которым тесно в классических «веб-каталогах» и централизованных трекерах. В первую очередь это администраторы self-hosted-инфраструктуры, энтузиасты #Yggdrasil и других overlay-сетей, разработчики и DevOps-инженеры, интересующиеся #P2P, #BitTorrent и практическими кейсами на #Rust. Отдельный слой ЦА — сторонники цифрового суверенитета, децентрализации и минимизации человеческого фактора в модерации контента.

Обоснование актуальности

Централизованные торрент-каталоги и трекеры деградируют под давлением регуляторов, коммерции и ручной модерации, превращаясь либо в «серые» витрины, либо в точки отказа. На этом фоне возрастает интерес к автоматизированным, инфраструктурным решениям, где логика системы важнее человеческих решений. βtracker закрывает именно эту нишу: автономная агрегация, отсутствие ручного контроля, ориентация на #OverlayNetworks и нативная работа с #IPv6. Гайд актуален как практическое руководство и как пример того, как может выглядеть живая, неконъюнктурная P2P-инфраструктура в 2020-х.



Comments

  1. YGGverse | YGGverse home in different protocols
    https://yggverse.github.io/#donate

    ReplyDelete

Post a Comment

Popular posts from this blog

Поддержите проект криптовалютой: Bitcoin, Litecoin, PKOIN и Tari – безопасные донаты без посредников

Аналитический доклад: Единый реестр IMEI в РФ: архитектура контроля, риски и сценарии реализации (эксклюзив DonOperInfo / Insider)

YaCy + IPFS: Децентрализированный поиск для децентрализованного интернета