Skip to content

Обзор архитектуры

Шестиуровневая топология

┌──────────────────────────────────────────────────────────┐
│  L0 — Telegram Bot API                                   │
│      • Bot framework (Telegraf, Node)                    │
│      • WebApp UI (Next.js, TON Connect)                  │
│      • Inline-клавиатуры + запуск WebApp                 │
├──────────────────────────────────────────────────────────┤
│  L1 — Round Engine (движок раундов)                     │
│      • Детерминированный конечный автомат (Go)           │
│      • Фазы: Announce → Commit → Reveal → Settle         │
│      • Верификация Commit-Reveal                         │
│      • Построение Merkle Root                            │
├──────────────────────────────────────────────────────────┤
│  L2 — Oracle Aggregator (агрегатор оракулов)            │
│      • Хранилище вопросов (Postgres + IPFS)              │
│      • Конвейер ансамбля LLM (Claude + GPT + Gemini)     │
│      • Адверсариальный дебиасер                          │
│      • Получатель маяка DRAND                            │
│      • Опрос TON-VRF                                     │
├──────────────────────────────────────────────────────────┤
│  L3 — Identity Layer (уровень идентификации)            │
│      • Конечный автомат Trust Ladder L0–L7               │
│      • Адаптеры Worldcoin / PoH / Gitcoin Passport       │
│      • Интеграция KYC-провайдера (Sumsub)                │
│      • Байесовский обновлятор Reputation Score           │
├──────────────────────────────────────────────────────────┤
│  L4 — Ad-Revenue Settlement (расчёт рекламной выручки)  │
│      • AdMob SDK (мобильное приложение + WebApp)         │
│      • Telegram Ads SDK                                  │
│      • Приёмник обратных вызовов AdMob SSV               │
│      • zk-SNARK prover (SP1, Фаза 2)                     │
├──────────────────────────────────────────────────────────┤
│  L5 — TON Settlement (расчёт в сети TON)                │
│      • Контракт $POP Jetton (FunC)                       │
│      • Контракт-обёртка Vesting                          │
│      • Контракт фиксации Merkle Root для Round           │
│      • Контракт разрешения споров                        │
│      • Контракты управления DAO (Фаза 3)                 │
└──────────────────────────────────────────────────────────┘

Поток данных

Пользователь нажимает «Играть» в Telegram

L0: WebApp открывается, запрашивает вход в Round

L4: Показ рекламы (AdMob), ожидание обратного вызова SSV

L4: SSV подтверждён → начисление POP (баллов)

L1: Пользователь получает вопрос Round (от L2)

L1: Пользователь фиксирует c_i в фазе Commit

L1: Пользователь раскрывает (s_i, b_i) в фазе Reveal

L1: Round Engine вычисляет большинство, строит Merkle Root

L3: Эффективный вес = α × r_i применяется

L1: Prize Pool (призовой пул) распределяется среди выживших

L5: Merkle Root фиксируется в TON (пакетно, каждые 24 часа)

Пользователь видит начисление POP и результат Round в WebApp

Бюджет задержек

ФазаЦельФакт (P50)Факт (P95)
Announce5 с4,2 с4,8 с
Commit30 с29,5 с30 с
Reveal15 с14,7 с15 с
Settle10 с7,3 с9,8 с
Round всего60 с55,7 с59,6 с

Фаза Settle включает построение и верификацию Merkle Root; ончейн-фиксация в TON выполняется пакетно с периодичностью 24 часа.

Инфраструктура

  • Хостинг: Cloudflare Workers + R2 + KV (распределённые на границе сети, низкая задержка).
  • Базы данных: Postgres (основная), Redis (состояние Round, эфемерные данные), R2 (артефакты Round, архив).
  • Round Engine: бинарный файл Go без сохранения состояния; горизонтально масштабируется за счёт anycast Cloudflare.
  • TON-клиент: ton-core SDK; подключения к полным узлам через TonAPI Cloud.
  • Наблюдаемость: OpenTelemetry → Grafana Cloud; Sentry для ошибок на стороне клиента.

Компоненты с открытым исходным кодом

  • Round Engine: MIT, github.com/cashpop-protocol/round-engine
  • WebApp: MIT, github.com/cashpop-protocol/webapp
  • Смарт-контракты (после TGE): MIT, github.com/cashpop-protocol/contracts
  • Конвейер сборки хранилища вопросов: исходный код доступен, github.com/cashpop-protocol/reservoir

Полный стек CashPop будет доступен для самостоятельного развёртывания после TGE: любой оператор сможет запустить форк-инстанс, однако выпускать $POP без одобрения DAO невозможно.

Built on TON.