ENGINEERING NOTE 38 / 50 · CARD
修复充值扫描器时如何避免跳过积压区块
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如何验收
让批次第二个事件失败后重试,确认不丢事件、不重复入账、不跳过失败断点。