跳到主要内容
Web3 前端面试题库
返回题库
中级交易系统概念题

safe 与 finalized 标签在确认中的应用

说明区块参数标签的用法、safe 与 finalized 的差别,以及读接口中标签选择与降级的取舍。

题目

页面上有一个「当前余额」和一个「结算后的余额」。工程师提出读取时分别使用 latest 与 finalized 两个标签,另一位同事担心部分网络不支持这两个取值。请解释这些标签的含义差异,并给出兼容处理方案。

考察目标

  • 区块参数用高度与用标签表示的区别。
  • safe 与 finalized 的强度差异。
  • 标签可用性不足时的降级路径。
查看参考答案包含简要回答、深入分析、常见错误与评分标准

30 秒回答

读接口的区块参数可以用高度或标签表示。以太坊执行层 API 中,latest 是节点看到的最新链头,safe 是满足相应安全假设的安全链头,finalized 是达到共识最终性的链头。目标 RPC 端点或其他 EVM 链可能不支持这些标签;不支持时按高度读取只能给出确认深度近似值,不能冒充 finalized。实现差异与工程取舍见深入回答。

深入回答

  • 【协议保证】JSON-RPC 的区块参数可以用区块号或标签表示;以太坊执行层 API 定义了 earliest、latest、pending、safe 与 finalized 等标签(依据:Ethereum Execution APIs §Block tag)。
  • 【协议保证】在以太坊执行层 API 中,safe 指满足诚实多数与同步性假设的安全链头,finalized 指达到加密经济最终性的链头,两者不是节点任意定义的同义标签(依据:Ethereum Execution APIs §Block tag)。
  • 【协议保证】不同区块参数指向不同区块,同一读取可能返回不同结果(依据:EIP-1474 §Block Identifier)。
  • 【实现行为】wagmi 的读取类 Hook 暴露 blockTag 参数,取值包含 latest、earliest、pending、safe 与 finalized(依据:wagmi useReadContract §blockTag)
  • 【工程经验】safe 与 finalized 标签能否被节点接受取决于其版本与配置;使用前应做能力探测,并为不支持的情况准备按区块高度读取的降级路径(依据:工程经验,无规范依据)
  • 【工程经验】读取「可能继续变化」的数据用 latest,读取「用于结算或核对」的数据用更强的最终性口径,可以让界面语义与风险一致(依据:工程经验,无规范依据)
  • 【工程经验】端点不支持标签时,可以按高度读取并显示确认深度,但这只是风险近似判断,不能把结果标成 safe 或 finalized。结算业务若必须得到共识最终性,应改用能提供该标签或等价最终性证明的端点(依据:Ethereum Execution APIs §Block tag;工程经验)。
  • 【工程经验】缓存与查询键应把标签纳入,避免把最新视图的结果复用到最终性视图上(依据:工程经验,无规范依据)
  • 【工程经验】把标签选择收敛到数据层统一下发,可以减少页面之间口径不一致的情况(依据:工程经验,无规范依据)

常见错误

  • 把 safe 与 finalized 当成同一强度的保证,或把固定区块深度标成 finalized(依据:Ethereum Execution APIs §Block tag)。
  • 默认用 latest 读取,却在文案上把结果描述成「已最终」(依据:工程经验,无规范依据)
  • 节点返回不支持该标签的错误时没有降级,把失败直接抛给用户(依据:工程经验,无规范依据)
  • 把「落后多少个 epoch」这类数字写进产品文案或校验逻辑(依据:该数值随网络状况变化,不适合作为固定假设;工程经验)
  • 在同一条产品的多条网络上沿用同一套标签假设(依据:工程经验,无规范依据)

面试官追问

  1. 节点报出标签不支持时,你的降级路径是什么?
  2. 用 finalized 读取余额时,用户刚完成的转账看不到,产品上如何解释?
  3. 读出「已最终」结果之后,还需要复查链上区块组织变化吗?
  4. 标签选择由页面决定,还是由数据层统一决定,如何取舍?

评分标准

初级回答

  • 知道区块参数可以用高度或标签表示。
  • 知道不同标签指向不同区块,结果可能不同。

中级回答

  • 能说明 safe 与 finalized 的强度差别。
  • 知道标签可用性取决于节点实现,并给出一种降级思路。

高级回答

  • 能设计标签降级、缓存隔离与口径统一的方案。
  • 能说明最终性口径下的产品文案处理与复查策略。

参考资料

发现这道题有问题? 反馈此题