Режимы отказа
Поведение системы при сбоях и в деградированном режиме.
Принципы проектирования
Hypercall продолжает торги там, где это возможно, и блокирует операции, если отсутствуют входные данные по цене или марже. При сбоях:
- Торговля продолжается там, где все необходимые входные данные валидны
- Отказавшие компоненты изолируются
- Пользователи получают явные ошибки, а не устаревшие данные или выдуманные цены
Недоступность L1
Если Hyperliquid L1 (HyperCore) становится недоступен:
| Функция | Поведение |
|---|---|
| Матчинг опционов | Продолжается в книге заявок Hypercall, пока входные данные по цене и волатильности остаются валидными |
| Ордера по перпам | Недоступны. Перпы исполняются на Hyperliquid. |
| Расчёты | Откладываются, пока не накопится достаточно сэмплов оракула (см. ниже) |
| Депозиты | Заблокированы до восстановления L1 |
| Выводы средств | Заблокированы до восстановления L1 |
Работа восстанавливается автоматически, как только L1 снова становится доступен.
Отказы оракулов
Ценовой оракул
Если ценовой оракул становится недоступен:
| Последствие | Поведение |
|---|---|
| Ордера, увеличивающие риск | Отклоняются, как только последней зафиксированной спотовой цене исполняется более 30 секунд |
| Ордера, снижающие риск | Принимаются и оцениваются по последней зафиксированной цене |
| Оценка маржи и ликвидации | Продолжается по последней зафиксированной цене. Цена-заменитель не формируется. |
| Расчётная цена на экспирации | Никогда не берётся из последней зафиксированной цены. См. Оракул недоступен в момент экспирации. |
Исправный фид повторно фиксирует неизменившуюся цену как минимум раз в 10 секунд, поэтому на боковом рынке 30-секундный лимит не срабатывает. Работа восстанавливается автоматически, когда оракул возвращается в строй.
Оракул IV
Если оракул подразумеваемой волатильности (IV) отказывает:
| Последствие | Поведение |
|---|---|
| Новые ордера | Ордера, увеличивающие риск по затронутому базовому активу, отклоняются |
| Ценообразование опционов | Резервной цены нет. Расчёты, которым нужна отсутствующая IV, завершаются ошибкой. |
| Расчёт маржи | Блокируется, а не выполняется с подставной волатильностью |
Точные условия описаны в разделе Оракул волатильности.
Сбои расчётов
Оракул недоступен в момент экспирации
Цены расчёта определяются по 30-минутному окну TWAP перед экспирацией. Описанные выше правила оценки при сбое на расчётную цену не распространяются. Если данные оракула недоступны:
- Частичный сбой: TWAP рассчитывается, только если в окне есть не менее 500 сэмплов. Hypercall может восстановить короткое окно по архивной истории оракула Hyperliquid с тем же минимальным порогом.
- Полный сбой: расчёт ждёт, пока не появится окно минимум с 500 сэмплами. Он не проводится по последней зафиксированной цене, неполному окну или цене-заменителю.
Расчёт может быть отложен и без сбоя, если финализированный TWAP недоступен точно в тик экспирации. В этом случае инструмент остаётся в статусе Expired Pending Price, торговля по нему отключена, а расчёт автоматически повторяется, пока не появится финализированная цена.
Алгоритм TWAP спроектирован с защитой от манипуляций. Подробности в разделе Оракулы.
Недоступность API
Если API Hypercall становится недоступен:
| Компонент | Статус |
|---|---|
| Торговля | Недоступна. Ордера и отмены по опционам, а также ордера по перпам проходят через API Hypercall. |
| Позиции и балансы | Хранятся в персистентном журнале движка и восстанавливаются при перезапуске |
| Открытые ордера | Входят в состояние движка и восстанавливаются при перезапуске. Отменить их нельзя, пока API не вернётся в строй. |
| Позиции по перпам | Остаются на вашем аккаунте Hyperliquid |
| Подписки WebSocket | Отключаются |
Рекомендации
- Реализуйте логику переподключения с экспоненциальной задержкой (exponential backoff)
- Кэшируйте критичные данные локально
- Проверяйте
GET /healthперед началом торговли - Исходите из того, что лимитные ордера в книге остаются активными во время недоступности API, и выставляйте объём котировок с учётом этого
Эндпоинт проверки состояния
| Эндпоинт | Назначение |
|---|---|
GET /health | Базовая проверка работоспособности (liveness) |
GET /ready | Полная проверка готовности, включая зависимости |
Информирование об инцидентах
Во время инцидентов следите за:
- Страница статуса: status.hypercall.xyz
- X: @SynapseProtocol
- Telegram: t.me/hypercall_trollbox
- Discord: discord.gg/4rMzuEnKqe