You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Substrate节点模板中当前块与最终确定块含义及自动活动配置问题

问题1:无用户交互时链上自动事件的源码配置位置

substrate-node-template 默认采用 Aura + Grandpa 共识机制,默认固定间隔出块,就算没有用户提交的交易,每个块生成过程中也会执行系统固有交易,对应产生自动事件,相关配置分布在两处核心源码路径:

  • Runtime 层(runtime/src/lib.rs)
    • 首先在construct_runtime!宏中默认注册了多个系统级 pallet,这些 pallet 的逻辑不需要用户触发,每个块都会自动执行:
      • pallet_timestamp 模块每个块必须调用set方法更新链上时间,会抛出TimestampSet事件
      • pallet_authorship 模块每个块会记录当前出块节点的账户信息,会抛出NewAuthor事件
  • 节点层(node/src/service.rs)
    • 共识规则、出块间隔、空块生成规则都在该文件中配置,默认配置允许无交易时正常出块,修改此处的共识参数即可调整空块的生成逻辑
问题2:Substrate 中 current 块和 finalized 块的区别
  • current 块(当前最佳块):是当前节点本地视角下,链上高度最高的有效块。Substrate 采用最长链规则选择主链,节点会同步网络中所有合法的分叉链,默认选择高度最高的分叉作为当前主链,current 块就是当前主链的顶端块,该块还没有完成最终确认,存在被更长的合法分叉替换的可能。
  • finalized 块(最终确定块):是已经通过确定性共识算法(默认是 Grandpa 共识)完成全网确认的块,一旦被标记为 finalized,该块的所有交易、状态变更都不可篡改、不可回滚,所有网络中的诚实节点都会认可该块的状态是最终有效状态。

内容的提问来源于stack exchange,提问作者balteo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:21:00