ENGINEERING NOTE 38 / 50 · CARD

修复充值扫描器时如何避免跳过积压区块

OPEN RAMBO ·

RPC恢复成功只是第一步。保留最后确认断点,并区分追赶中与已同步。

本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。

检查被拒绝请求

节点可能限制比扫描器预期更小的区块范围。检查方法与脱敏错误,在原断点测试更小只读范围。不能为清告警把断点重置到链头。

处理完成后推进

相关入账事件持久化后才推进断点。保留重叠或其他明确重组策略及确认数规则。批次中途失败后,应通过幂等收款标识安全重放。

同时看积压与新鲜度

最近成功时间新鲜仍可能积压数日。单列链头减断点和实际推进速率。考虑新增区块后按净进度估算,不因一次成功就宣称完全恢复。

示意流程

end = min(safe_head, start + max_range - 1)
process_idempotently(get_logs(start, end))
commit_cursor(end + 1)  # only after successful processing

如何验收

让批次第二个事件失败后重试,确认不丢事件、不重复入账、不跳过失败断点。

继续阅读