故障模式
服务中断和降级情况下的系统行为。
设计理念
Hypercall 在条件允许时保持交易,在价格或保证金输入缺失时以关闭方式失败(fail closed)。故障期间:
- 在所需输入有效的前提下,交易继续进行
- 故障组件被隔离
- 用户收到明确的错误,而不是过时数据或编造的价格
L1 停机
如果 Hyperliquid L1(HyperCore)不可用:
| 功能 | 行为 |
|---|---|
| 期权撮合 | 在价格和波动率输入保持有效期间,继续在 Hypercall 订单簿上进行 |
| 永续合约订单 | 不可用。永续合约在 Hyperliquid 上执行。 |
| 结算 | 延迟至获得足够的预言机样本(见下文) |
| 充值 | 在 L1 恢复前暂停 |
| 提现 | 在 L1 恢复前暂停 |
L1 恢复可用后将自动恢复。
预言机故障
价格预言机
如果价格预言机不可用:
| 影响 | 行为 |
|---|---|
| 增加风险的订单 | 一旦最后记录的现货价格超过 30 秒,将被拒绝 |
| 降低风险的订单 | 接受,按最后记录的价格估值 |
| 保证金与强制平仓估值 | 继续使用最后记录的价格。不会生成替代价格。 |
| 到期结算价格 | 绝不取自最后记录的价格。参见到期时预言机宕机。 |
正常运行的价格源至少每 10 秒会重新记录一次价格(即使价格未变),因此行情横盘不会触发 30 秒限制。预言机恢复后将自动恢复。
IV 预言机
如果IV 预言机发生故障:
| 影响 | 行为 |
|---|---|
| 新订单 | 受影响标的资产上增加风险的订单将被拒绝 |
| 期权定价 | 无备用价格。需要缺失 IV 的计算将失败。 |
| 保证金计算 | 以关闭方式失败,而不是使用替代波动率 |
具体条件请参阅波动率预言机。
结算故障
到期时预言机宕机
结算价格使用到期前的 30 分钟 TWAP 窗口。上文针对估值的中断规则不适用于结算价格。如果预言机数据不可用:
- 部分中断:仅当窗口内至少有 500 个样本时才计算 TWAP。Hypercall 可以利用存档的 Hyperliquid 预言机历史数据重建较短的窗口,适用相同的最低样本要求。
- 完全中断:结算会等待,直到获得至少包含 500 个样本的窗口。不会以最后记录的价格、不完整的窗口或替代价格结算。
即使没有发生中断,如果在精确的到期时刻无法获得最终确定的 TWAP,结算也可能延迟。在这种情况下,该合约保持 Expired Pending Price 状态,交易保持禁用,结算会自动重试,直至最终价格产生。
TWAP 算法旨在抵御操纵。详情请参阅预言机。
API 停机
如果 Hypercall API 不可用:
| 组件 | 状态 |
|---|---|
| 交易 | 不可用。期权订单、撤单和永续合约订单均通过 Hypercall API 进行。 |
| 持仓与余额 | 保存在引擎的持久化日志中,重启时恢复 |
| 挂单 | 属于引擎状态的一部分,重启时恢复。在 API 恢复之前,您无法撤销这些订单。 |
| 永续合约持仓 | 保留在您的 Hyperliquid 账户中 |
| WebSocket 订阅 | 断开连接 |
建议
- 实现带指数退避的重连逻辑
- 在本地缓存关键数据
- 交易前检查
GET /health - 假设挂单在 API 中断期间仍保持有效,并据此设定挂单报价的规模
健康检查端点
| 端点 | 用途 |
|---|---|
GET /health | 基本存活检查 |
GET /ready | 包含依赖项的完整就绪检查 |
事件通知
发生事件期间,请查看:
- 状态页面:status.hypercall.xyz
- X:@SynapseProtocol
- Telegram:t.me/hypercall_trollbox
- Discord:discord.gg/4rMzuEnKqe