54 个版本 (35 个主要版本)

37.0.0 2024 年 7 月 18 日
36.0.0 2024 年 7 月 12 日
35.0.0 2024 年 6 月 21 日
34.0.0 2024 年 5 月 23 日
2.0.0-alpha.52020 年 3 月 24 日

#20 in #polkadot

Download history 1902/week @ 2024-05-03 1928/week @ 2024-05-10 2261/week @ 2024-05-17 2585/week @ 2024-05-24 2788/week @ 2024-05-31 2554/week @ 2024-06-07 2077/week @ 2024-06-14 3066/week @ 2024-06-21 1708/week @ 2024-06-28 929/week @ 2024-07-05 2737/week @ 2024-07-12 2381/week @ 2024-07-19 2333/week @ 2024-07-26 2339/week @ 2024-08-02 3055/week @ 2024-08-09 2888/week @ 2024-08-16

11,065 每月下载量
用于 44 个 crate(33 个直接使用)

Apache-2.0

2.5MB
45K SLoC

执行模块

执行模块作为运行时的协调层。它将传入的外部调用派发到运行时中相应的模块。

概述

执行模块不是一个提供特定功能功能的典型组件。它是 FRAME 的跨切面框架组件。它与 FRAME 系统模块 结合工作,执行这些跨切面功能。

执行模块提供以下功能:

  • 检查交易有效性。
  • 初始化区块。
  • 应用外部调用。
  • 执行区块。
  • 最终化区块。
  • 启动离线工作。

实现

执行模块提供了以下实现:

  • Executive:一种类型,可用于从运行时提供 FRAME。

用法

默认的 Substrate 节点模板在其库中声明了 Executive 类型。

示例

节点模板中的 Executive 类型声明。

/// Executive: handles dispatch to the various modules.
pub type Executive = executive::Executive<
    Runtime,
    Block,
    Context,
    Runtime,
    AllPalletsWithSystem,
>;

自定义 OnRuntimeUpgrade 逻辑

您可以在运行时升级时调用自定义逻辑。这是通过设置一个可选的泛型参数来完成的。自定义逻辑将在调用所有模块的运行时升级逻辑之前调用。

struct CustomOnRuntimeUpgrade;
impl frame_support::traits::OnRuntimeUpgrade for CustomOnRuntimeUpgrade {
    fn on_runtime_upgrade() -> frame_support::weights::Weight {
        // Do whatever you want.
        frame_support::weights::Weight::zero()
    }
}

pub type Executive = executive::Executive<
    Runtime,
    Block,
    Context,
    Runtime,
    AllPalletsWithSystem,
    CustomOnRuntimeUpgrade,
>;

许可证:Apache-2.0

依赖项

~17-31MB
~523K SLoC