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.5 | 2020 年 3 月 24 日 |
#20 in #polkadot
11,065 每月下载量
用于 44 个 crate(33 个直接使用)
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