故障模式
系统在服务中断和降级情况下的行为。
设计理念
Hypercall 优先考虑可用性而非严格一致性。在发生故障时:
- 在可能的情况下交易继续进行
- 故障组件被隔离
- 用户收到显式错误,而非过期数据
L1 停机
如果 Hyperliquid L1(HyperCore)不可用:
| 功能 | 行为 |
|---|---|
| 订单撮合 | 在链下继续进行 |
| 结算 | 排队等待,直至 L1 恢复 |
| 充值 | 被阻止,直至 L1 恢复 |
| 提现 | 被阻止,直至 L1 恢复 |
| 强制平仓 | 基于最后已知仓位继续执行 |
L1 恢复可用后,系统会自动恢复。
预言机故障
价格预言机
如果价格预言机不可用:
| 影响 | 行为 |
|---|---|
| 新订单 | 被拒绝(无参考价格) |
| 保证金计算 | 失败并返回错误 |
| 强制平仓检查 | 使用最后已知价格 |
预言机恢复后,系统会自动恢复。
IV 预言机
如果 IV 预言机发生故障:
| 影响 | 行为 |
|---|---|
| 新订单 | 可能被拒绝,具体取决于保证金模式 |
| 期权定价 | 回退至内在价值 |
| 保证金计算 | 使用保守估算 |
结算故障
到期时预言机停机
结算价格使用到期日前的 30 分钟 TWAP 窗口。如果预言机数据不可用:
- 部分中断:使用可用样本计算 TWAP
- 完全中断:结算延迟,直至数据可用或人工干预
即使没有中断,如果在到期日的精确时刻无法获得最终确定的 TWAP,结算也可能被延迟。在这种情况下,该合约品种将保持在 Expired Pending Price 状态,交易保持禁用,结算将自动重试,直至最终确定的价格生成。
TWAP 算法的设计具有抗操纵能力。详情请参阅预言机。
API 停机
如果 Hypercall API 不可用:
| 组件 | 状态 |
|---|---|
| 链上交易 | 可通过直接合约调用正常使用 |
| 仓位 | 在链上安全保存 |
| 未成交订单 | 保留在订单簿中 |
| WebSocket 订阅 | 断开连接 |
建议
- 实现带指数退避的重连逻辑
- 在本地缓存关键数据
- 交易前检查
GET /health - 使用链上方法作为关键操作的后备方案
健康检查端点
| 端点 | 用途 |
|---|---|
GET /health | 基本存活检查 |
GET /ready | 包含依赖项的完整就绪检查 |
事件通报
事件发生期间,更新将发布于:
- Discord:#announcements 频道
- Twitter:@synapseprotocol