🛰️ Data Acquisition — Overview

Как мы получаем партии и информацию об игроках для аналитики: реверс-инжиниринг протокола игровых сайтов, синхронизация истории и наши инструменты добычи. Внутренний раздел закрытой вики (репозитории приватные, сайт за Zero Trust).

Внутреннее

Здесь описаны методы доступа к сторонним сайтам и внутренняя механика добычи. Раздел не предназначен для распространения за пределами команды; секреты (токены/ключи/connection-string) держим в .env/секрет-сторе, а не в заметках.


🔄 Синхронизация — как это устроено (спайн 03–09)

Подробное описание того, как партии и игроки синхронизируются с игровых сайтов в аналитику. Читается сверху вниз; страница 03 Синхронизация — обзор и архитектура — точка входа и карта всего остального.

  • 03 Синхронизация — обзор и архитектураначни отсюда. Два режима добычи (live observer / backfill sync), медальон (сайт → bronze → gold), четыре писателя, сквозной путь партии, обе машины состояний кратко.
  • 04 Граф игроков и перечисление — синхронизация информации об игроках: seed-игроки + спайдер по оппонентам (BFS), POST /api/player/history, полный против инкрементального свипа, резюм по enumerate_offset, таблица players, машина состояний игрока.
  • 05 Конвейер партий и состояния — синхронизация партий: таблицы games + raw_game_data, машина состояний партии, стадии fetch → normalize → post → archive, сырой кэш и реплей, идемпотентность.
  • 06 Защита от блокировок и Cloudflare — rate-limiter (single-flight, spacing + jitter, backoff, retry-on-throttle, бюджет), curl/Cloudflare/OpenSSL-фингерпринт, рычаг ENUMERATE_PAGE_SIZE, уроки 429.
  • 07 Контракт ingest и валидация движком — стык с аналитикой: POST против PUT /api/games, схема GameIngest, реплей-гейт движком (что значит 422), first-writer-wins.
  • 08 Идентичность, источники и дедупликацияexternal_id / source / player_type по всем писателям, нативный отрицательный id ботов против нашего bot:<algorithm>, гонка first-writer-wins, дедуп V6.
  • 09 Pipeline - dicechess-sync — служебная справка по сервису dicechess-sync: CLI-команды, полная таблица env-переменных, демон-цикл, Docker-деплой.

✍️ Сервисы-писатели и хранилище

Четыре независимых писателя сходятся в одном контракте POST /api/games; сырьё оседает в bronze-архиве.


🌐 Протокол игровых сайтов

Низкоуровневый реверс-инжиниринг: что и как шлёт сайт, где взять сессию, как перехватить трафик.


🤖 Боты и движок (связанное)

История про игру нашего движка против сайт-ботов — соседняя с добычей тема (репозиторий dicechess-bots, см. также Расширение dicechess-extension).