Цю сторінку перекладено автоматично. Оригінал англійською мовою є канонічним. Читати англійською →
Перейти к основному содержимому

Режими збоїв

Поведінка системи під час збоїв і в деградованих умовах.

Принцип проєктування​

Hypercall продовжує торгівлю там, де це можливо, і безпечно відмовляє (fail closed), коли відсутні вхідні дані про ціну або маржу. Під час збоїв:

  • Торгівля триває там, де необхідні вхідні дані є коректними
  • Компоненти, що відмовили, ізолюються
  • Користувачі отримують явні помилки, а не застарілі дані чи вигадані ціни

Недоступність L1​

Якщо Hyperliquid L1 (HyperCore) стає недоступним:

ФункціяПоведінка
Зведення опціонних заявокТриває в книзі заявок Hypercall, доки вхідні дані про ціну та волатильність залишаються коректними
Заявки на перпиНедоступні. Перпи виконуються на Hyperliquid.
РозрахункиВідкладаються, доки не набереться достатньо зразків оракула (див. нижче)
ДепозитиЗаблоковані до відновлення L1
Виведення коштівЗаблоковані до відновлення L1

Відновлення відбувається автоматично, щойно L1 знову стає доступним.

Збої оракулів​

Ціновий оракул​

Якщо ціновий оракул стає недоступним:

ВпливПоведінка
Заявки, що збільшують ризикВідхиляються, щойно остання зафіксована спотова ціна стає старшою за 30 секунд
Заявки, що зменшують ризикПриймаються й оцінюються за останньою зафіксованою ціною
Оцінка маржі та ліквідаціїТривають за останньою зафіксованою ціною. Жодна замінна ціна не формується.
Ціна розрахунку на експіраціїНіколи не береться з останньої зафіксованої ціни. Дивіться Оракул недоступний на експірації.

Справний фід повторно фіксує незмінну ціну щонайменше кожні 10 секунд, тож пласкій ринок не спричиняє спрацювання 30-секундного ліміту. Відновлення відбувається автоматично, коли оракул повертається.

Оракул IV​

Якщо оракул IV відмовляє:

ВпливПоведінка
Нові заявкиЗаявки, що збільшують ризик за відповідним базовим активом, відхиляються
Ціноутворення опціонівРезервної ціни немає. Розрахунки, яким потрібна відсутня IV, завершуються помилкою.
Розрахунок маржіБезпечно відмовляють замість використання замінної волатильності

Точні умови див. у розділі Оракул волатильності.

Збої розрахунків​

Оракул недоступний на експірації​

Ціни розрахунку використовують 30-хвилинне вікно TWAP перед експірацією. Наведені вище правила оцінки під час збою на ціну розрахунку не поширюються. Якщо дані оракула недоступні:

  1. Частковий збій: TWAP обчислюється, лише якщо вікно містить щонайменше 500 зразків. Hypercall може відновити коротке вікно з архівної історії оракула Hyperliquid за тієї ж мінімальної вимоги.
  2. Повний збій: розрахунок чекає, доки не з'явиться вікно щонайменше з 500 зразками. Він не проводиться за останньою зафіксованою ціною, неповним вікном чи замінною ціною.

Розрахунок також може бути відкладено без збою, якщо остаточний TWAP недоступний точно в момент експірації. У такому разі інструмент залишається в стані Expired Pending Price, торгівля залишається вимкненою, а розрахунок автоматично повторюється, доки не з'явиться остаточна ціна.

Алгоритм TWAP розроблено так, щоб протидіяти маніпуляціям. Докладніше див. у розділі Оракули.

Недоступність API​

Якщо API Hypercall стає недоступним:

КомпонентСтан
ТоргівляНедоступна. Опціонні заявки, скасування та заявки на перпи проходять через API Hypercall.
Позиції та балансиЗберігаються в надійному журналі рушія та відновлюються під час перезапуску
Відкриті заявкиЄ частиною стану рушія та відновлюються під час перезапуску. Ви не можете скасувати їх, доки API не повернеться.
Позиції в перпахЗалишаються на вашому акаунті Hyperliquid
Підписки WebSocketРозриваються

Рекомендації​

  • Реалізуйте логіку повторного підключення з експоненційною затримкою
  • Кешуйте критичні дані локально
  • Перевіряйте GET /health перед торгівлею
  • Виходьте з того, що лімітні заявки в книзі залишаються активними під час недоступності API, і визначайте розмір котирувань з урахуванням цього

Ендпоінт стану​

ЕндпоінтПризначення
GET /healthБазова перевірка працездатності
GET /readyПовна перевірка готовності, включно із залежностями

Комунікація під час інцидентів​

Під час інцидентів перевіряйте: