L2排序器停机时,链的安全承诺可能仍由L1保护,但普通用户常用的RPC、提交与确认通道会受阻。少数能直接走L1强制入口的参与者拥有不同访问条件。若借贷协议照常接受价格并允许清算,用户可能在无法补仓时被处理;排序器刚恢复也需要缓冲。
停机状态为何要单独喂价
价格Feed可能仍返回一个数,但它不能说明用户是否能公平地在L2提交交易。Sequencer Uptime Feed专门记录排序器可用性,消费者读取latestRoundData中的answer和startedAt,把交易通道风险与资产价格风险分开。
两类Feed解决两类风险
- Sequencer Uptime Feed的answer为0表示排序器运行,1表示停机;startedAt记录状态上次改变的时间。
- 排序器恢复后应等待配置的grace period,再允许依赖实时价格的清算或关键操作,给普通用户恢复交互机会。
- 排序器状态检查不能替代价格Feed的新鲜度、答案范围和轮次检查,两类风险需要分别处理。
恢复后不能立刻开闸
answer回到0只说明排序器恢复。积压消息需要处理,钱包和普通用户也需要重新连接、补充抵押或偿还债务。协议用block.timestamp减startedAt,未超过grace period时继续暂停清算。宽限时长是风险参数,不应机械照抄示例常量。
还要继续检查价格Feed
排序器正常不代表价格答案新鲜。消费者仍要验证updatedAt、答案正值、业务允许的最大延迟和Feed地址。Arbitrum未初始化时startedAt可能为0,也要显式拒绝或处理。两个Feed任何一个异常,都不应落入“继续使用旧价格”的静默分支。
| 检查 | 条件 | 协议动作 |
|---|---|---|
| answer | 0为up,1为down | down时暂停敏感操作 |
| startedAt | 状态上次变化时间 | 计算恢复后经过时间 |
| grace period | 业务配置阈值 | 未结束前拒绝清算 |
| price feed | updatedAt、答案范围 | 独立检查价格新鲜度 |
健康因子和清算比例可参考Aave清算规则;L2交易仍需按回执状态确认,任何预言机或合约地址先执行连接与地址检查。
清算开关的演练步骤
- 从Chainlink官方页面取得目标网络Feed地址
- 检查answer并处理startedAt为0
- 按业务风险设置并测试grace period
- 独立验证价格Feed的新鲜度和范围
- 演练停机、恢复、积压与再次停机
状态Feed不会让排序器恢复
Sequencer Feed不是去中心化排序器,也不能让停机网络继续正常出块;它只是给应用一个可执行的状态信号。暂停清算也不等于暂停所有功能,存款、还款、提款和治理应逐项分析,避免把安全开关做成新的资金锁死点。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。