BT9G LABS / DHT Deep Dive #20

Как BT9G может масштабировать индексацию BitTorrent Metadata: эталонная DHT-архитектура

Reference architecture для BT9G Labs: DHT discovery, durable InfoHash state, Metadata acquisition, search indexing и observability.

BT9G Labs / DHT Deep Dive #20. Собираем протокольные и инженерные идеи серии в одну масштабируемую архитектуру для поисковой системы класса BT9G.

Как BT9G может масштабировать индексацию BitTorrent Metadata: эталонная DHT-архитектура

Краткое резюме

  • Тема: Как BT9G может масштабировать индексацию BitTorrent Metadata: эталонная DHT-архитектура
  • Ключевые слова: BT9G, DHT architecture, Metadata indexing, BitTorrent search, distributed crawler
  • Для кого: backend-разработчики, исследователи протоколов, инженеры поисковых систем и разработчики BitTorrent-клиентов
  • Цель: Объяснить механизм достаточно точно, чтобы на его основе можно было принимать реальные архитектурные решения для краулинга, индексации и поиска.

Системная схема

Discovery edge и hash ledger

Первый слой — постоянно работающие DHT nodes/crawlers: KRPC, routing table и дешевые observation events. Они не должны синхронно тянуть Metadata. Все content identities поступают в durable hash ledger, где выполняются exact dedup, first_seen/last_seen, retry state и activity aggregation.

Peer endpoints живут короче InfoHash и логичнее хранятся в TTL-based candidate store.

Metadata acquisition fleet

Scheduler выбирает приоритетные InfoHash, workers получают Peer candidates, устанавливают BitTorrent-сессии, договариваются через BEP 10 и забирают Metadata по BEP 9. Только после проверки identity объект становится canonical metadata.

Workers масштабируются отдельно от discovery, а concurrency управляется по success rate, p95 latency и ресурсам хоста.

Serving, ranking и observability

Проверенные документы отправляются в canonical storage и производный search index. Serving layer показывает стабильные поля, а ranking сочетает text relevance, freshness, activity и quality. Вся система должна иметь end-to-end метрики: DHT queries, unique hashes, Peer connect, extension support, Metadata success и indexing lag.

Так BT9G может точно видеть, какой слой ограничивает рост индекса.

Эскиз реализации

DHT observers
    |
    v
Hash event bus ---> metrics
    |
    v
Exact hash ledger <---- fresh activity wakes cold hashes
    |
    v
Retry / priority scheduler
    |
    v
Metadata fleet -> hash validation -> canonical metadata DB
                                   |
                                   v
                              enrichment
                                   |
                                   v
                              search index
                                   |
                                   v
                                BT9G

Инженерные заметки BT9G Labs

Для индексатора уровня BT9G важнее не максимальное число событий, а правильное разделение идентичности контента, краткоживущих сетевых наблюдений, состояния сбора и поискового представления. Поля, полученные из DHT или от Peer, должны иметь источник и временную метку. Метрики стоит вести по этапам: discovery, соединение, handshake, поддержка расширений, получение Metadata, проверка, сохранение и индексация. Это позволяет видеть реальное узкое место системы, а не списывать все неудачи на «нестабильную сеть».

Типичные ошибки

  • Заставлять discovery workers одновременно выполнять Metadata и indexing.
  • Хранить Peer endpoints как вечные сущности уровня InfoHash.
  • Публиковать Metadata до identity validation.
  • Иметь только общий throughput без стадийных success/latency метрик.

Связанные статьи BT9G Labs

Источники


Материал описывает публичное поведение протоколов BitTorrent для инженерных и исследовательских целей и не означает, что любой наблюдаемый Swarm доступен, корректен или разрешен к распространению.