GH GambleHub

Стійкість мережевих зв'язків

(Розділ: Екосистема та Мережа)

1) Мета і область

«Стійкість мережевих зв'язків» - це здатність екосистеми зберігати доступність і передбачувану якість взаємодій між учасниками (оператори, провайдери, студії, афіліати, ноди/валідатори, платіжні та KYC-сервіси) при збоях каналів, вузлів, регіонів і зовнішніх атак. Ключові завдання: мінімізація MTTR, стримування каскадних відмов, контрольована деградація і швидке відновлення до цільових SLO.

2) Відмовні режими (Threat model)

Мережа: втрата пакетów/джиттер, перевантаження каналів, BGP-флап, міжрегіональні розриви, асиметрична маршрутизація.
Транспорт/сокети: half-open з'єднання, head-of-line blocking (TCP), state exhaustion (NAT/conn-track).
Прикладний рівень: шипи трафіку, «довгограючі» запити, n + 1 RPC, шторм ретраїв.
Залежності: деградація DNS, KMS/PKI, черг, TURN/relay, сторонніх API.
Безпека: L3/L4/L7 DDoS, бот-флуд, отруєння кешу, спроби Sybil/спаму.
Операційка: невірні фічефлаги, «гарячі» релізи без лімітів, неправильні таймаути.

3) Принципи дизайну стійкості

1. Надмірність по всіх шарах: шляхи, регіони, провайдери, релей-вузли, DNS, секретні сховища.
2. Ізоляція відмов: cell-based архітектура, circuit-breakers, bulkheads, ліміти на крос-коміркові виклики.
3. Fail-fast и time-boxing: короткі таймаути у зовнішніх викликів, заборона «очікувати вічно».
4. Ідемпотентність і безпечні ретраї: ключі ідемпотентності, дедуп на приймачі.
5. Спостереження за замовчуванням: трасування, кореляційні ID, синтетичні проби.
6. Деградаційні режими: read-only, кеш-only, drop-features, пріоритет критичних потоків.
7. Chaos-інженерія: доведення стійкості експериментом.

4) Топології та надмірність

Гібридна P2P + super-peers + DHT: локальна mesh всередині «контрактних» груп, супер-вузли як ретранслятори і кеші, DHT для пошуку.
Anycast/Geo-DNS/SD-WAN: ближній вхід, керовані перетоки, health-based routing.
Мульти-релеї (TURN/HTTP3-tunnels): незалежні постачальники, бюджет на relay тільки при необхідності.
Active-Active регіони: синхронно для ідемпотентних читань/подій; для грошових операцій - кінцева узгодженість + сувора фіналізація.

5) Протоколи, таймаути і ретраї

Транспорт: QUIC/HTTP3 (мультиплексування без HoL-blocking, міграція шляху), TCP - як fallback.

Таймінги (орієнтири):
  • RPC client timeout: p99_latency×1. 5 (але ≤ 2-3 з міжрегіонально).
  • Connect timeout: 200-500 мс локально, 700-1200 мс міжрегіонально.
  • Backoff: експоненціальний з джиттером; max-retries 2-3 для «читаючих» викликів.
  • Хеджинг (hedged requests): після p95 затримки послати другого виконавця (тільки ідемпотентні операції).
  • Ідемпотентність: заголовок/поле'x-idempotency-key', зберігання dedup-журналів ≥ TTL ретраїв.
  • Черги та outbox: гарантована доставка подій, повтор при збоях мережі, дедуп на консюмерах.

6) Управління навантаженням і «самозахист»

Rate-limits і квоти: leaky-bucket/token-bucket на RPC/топіки.
Adaptive load-shedding: скидання низькопріоритетних запитів при зростанні латентності.
Пріоритети: гроші/виплати> ігрові події> телеметрія.
Backpressure: динамічне вікно, обмеження паралелізму, «кредитні ліміти» бенкетів.
Connection pooling: теплі пули, ліміти на відкриті сокети/NAT-стани.

7) DDoS і безпека каналу

L3/L4: upstream scrubbing/Anycast, conn-track защита, SYN-cookies, UDP-rate.
L7: WAF/WAAP, proof-of-work/fee-gate для відкритих тем, капчі/гаманці проти спаму.
mTLS/TLS 1. 3 + E2E: шифрування «в дорозі», пінінг ключів супер-вузлів, ротація сертифікатів.
Анти-Sybil: реєстр довірених peer-ID, репутація, KYB/KYC для впливових ролей.
Сек'юрні дефолти: «заборонено, якщо не дозволено», ACL по топіках, мінімізація прав.

8) SLO, SLI і метрики стійкості

SLO (приклад):
  • Uptime критичних ендпоінтів ≥ 99. 95 %/30д.
  • p99 latency міжрегіонально ≤ 600 мс; error-rate ≤ 0. 2%.
  • Success-rate P2P-RPC ≥ 99. 5%; Pub/Sub E2E p95 ≤ 2 с.
  • Relay-share ≤ 30%; DHT resolve p95 ≤ 300 мс.
  • MTTR SEV-1 ≤ 30 хв; MTTA ≤ 5 хв.
SLI/метрики:
  • Connectivity% (досяжність бенкетів), частка прямих з'єднань, середнє число сусідів.
  • RTT/Jitter/Loss за класами трафіку; RPC success/failure taxonomy.
  • Queue depth/lag в брокерах/relay; DHT hit/miss і вік записів.
  • Burn-rate по SLO (1ч/6ч/24ч); вплив на бізнес-KPI (втрати GTV/MAU).

9) Спостережуваність і синтетичні проби

Трейсинг: наскрізні trace-ID, експорт через OpenTelemetry, семантика спанів для мережевих хопів.
Логи/метрики: структурні логи, кардинальність під контролем, агрегати p95/p99.
RUM + синтетика: реальні призначені для користувача метрики і глобальна сітка проб (кожні 1-5 хв) з ключових регіонів/провайдерів.
SLO-дашборди: «світлофори» по критичних потоках, карти затримок/наявності, звіти про деградацію.

10) Деградаційні режими

Read-only/кеш-only: при відсіканні запису в бекенди.
Stale-while-revalidate: віддаємо застарілий, але придатний кеш з фоновим оновленням.
Feature kill-switch: швидкий вимикач нестабільних частин.
Лімітування фан-ауту: заборона на «віяло» запитів, ф'юз по глибині.

11) Chaos-інженерія (план)

Мережеві Faults: 1-5% packet-loss, 100-300 мс джиттер, blackhole окремих ASN.
Relay/TURN відмова: вимкнення N% супер-вузлів, перевірка частки прямих з'єднань.
DNS/KMS деградація: штучні таймаути/помилки, валідація фоллбеків.
Шторм ретраїв: перевірка захистів від каскадів (джиттер, ліміти, дедуп).
Game-day регламент: гіпотеза → інжекція → метрики → поліпшення → повтор.

12) DR-стратегія та цільові показники

RPO/RTO: для даних конфігурацій і ACL - RPO ≈ 0 (синхронні снапшоти), RTO ≤ 15 хв; для телеметрії припустимо RPO ≤ 5 хв.
Каталоги та ключі: холодні резерви, періодичні провалідовані бекапи, «тренування відновлення».
Регіональні катастрофи: перемикання Anycast/Geo-DNS, прогрівання кешів, реплікація черг/топіків.

13) Псевдо-конфігурації

Політика клієнтських таймаутів і ретраїв (YAML)

yaml client:
rpc:
connect_timeout_ms: 400 request_timeout_ms: 1500 retries:
max_attempts: 2 backoff: exponential base_ms: 100 jitter: true hedging:
enabled: true threshold_ms: 800  # p95 idempotent_only: true

Circuit-breaker і пріоритети

yaml resilience:
circuit_breaker:
error_rate_threshold: 0. 02 rolling_window_sec: 60 open_duration_sec: 15 priorities:
payouts: high game_events: medium telemetry: low load_shedding:
target_p99_ms: 600 drop_low_priority: true

ACL та e2e-канали

yaml security:
mtls: required e2e_topics: [payouts. status, limits. update]
acl:
operators: [12D3KooA..., 12D3KooB...]
providers: [12D3KooC..., 12D3KooD...]

14) Дашборди: макети

Ops (погодинний/реал-тайм): Connectivity%, RPC p99, error-rate, relay-share, DHT-latency, queue-lag, SLO burn-rate.
Network Health (тиждень): тренди relay-% і RTT, списки «галасливих» бенкетів, успішність NAT traversal, вартість трафіку.
Strategy (місяць): інциденти SEV, MTTA/MTTR, DR-тренування, кореляція з бізнес-метриками.

15) Playbook інцидентів (шпаргалка)

Стрибок p99 і помилок: включити деградацію (read-only, кеш-only), хеджинг, збільшити квоти критичним потокам, відкрити тікети на «гарячий» шлях.
Relay-share> пороги: перемкнути STUN/TURN-пули, розширити супер-вузли, посилити hole-punch, тимчасово підняти TTL кешів.
Шторм ретраїв: знизити max-retries, збільшити джиттер, включити глобальний backoff-прапор через конфіг-сервіс.
DDoS L7: включити WAAP-правила, блок по сигнатурах/швидкості, включити PoW/fee-gate на публічних темах, викл. несуттєві ендпоінти.
Проблеми DNS/KMS: задіяти вторинні провайдери, локальні кеші ключів, перемкнути резолвери.
Регіон недоступний: failover трафіку (Anycast/Geo-DNS), warming іншого регіону, перерахунок лімітів.

16) Чек-лист впровадження

1. Зафіксувати SLO/SLI і власників (по потоках/топіках).
2. Впровадити таймаути/ретраї/хеджинг/ідемпотентність.
3. Налаштувати circuit-breakers, bulkheads і пріоритети.
4. Запустити синтетичні проби та глобальні дашборди.
5. Ввести DR-план (RPO/RTO), регулярні тренування відновлення.
6. Провести квартальний chaos-день і ревізію параметрів.
7. Документувати деградаційні режими та шаблони комунікацій.

17) Глосарій

Bulkhead - ізоляція підсистем для запобігання каскадів.
Circuit breaker - автоматичне відключення нестабільної залежності.
Hedging - конкурентні запити після порогової затримки.
Outbox/Inbox - надійна відправка/прийом подій з дедуплікацією.
RPO/RTO - допустима втрата даних/час відновлення.
SLO burn-rate - швидкість «спалювання» бюджету помилок щодо SLO.

Підсумок: стійкість мережевих зв'язків - це не «одна фіча», а дисципліна: надмірність і ізоляція відмов, грамотні таймаути і ретраї, жорстка пріоритизація, спостережуваність і регулярні випробування. Такий підхід перетворює неминучі мережеві збої в керовані події з мінімальним впливом на бізнес-потоки екосистеми.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.