57个版本 (35次重大变更)

37.1.0 2024年8月14日
37.0.0 2024年7月18日
36.1.0 2024年8月16日
36.0.0 2024年7月12日
2.0.0-alpha.52020年3月24日

#12 in 魔法豆

Download history 4448/week @ 2024-04-28 4099/week @ 2024-05-05 3870/week @ 2024-05-12 4614/week @ 2024-05-19 4382/week @ 2024-05-26 4739/week @ 2024-06-02 3063/week @ 2024-06-09 3594/week @ 2024-06-16 5076/week @ 2024-06-23 2144/week @ 2024-06-30 3192/week @ 2024-07-07 5699/week @ 2024-07-14 3930/week @ 2024-07-21 3774/week @ 2024-07-28 3578/week @ 2024-08-04 4695/week @ 2024-08-11

每月下载量16,379
用于410个crate(318个直接使用)

Apache-2.0

2.5MB
44K SLoC

系统模块

System模块提供了对核心类型和跨切面实用工具的低级访问。它作为其他模块与Substrate框架组件交互的基础层。

概述

System模块定义了Substrate运行时中使用的核心数据类型。它还提供了几个实用函数(见Pallet),用于其他FRAME模块。

此外,它还管理着支持当前区块执行的外部数据存储项、索引、事件记录和摘要项等。

它还处理低级任务,例如记录存储、临时存储条目的基本设置和拆除,以及访问先前块的哈希。

界面

可调用的函数

系统模块不实现任何可调用的函数。

公共函数

有关公开可用函数的详细信息,请参阅Pallet结构。

签名扩展

系统模块定义以下扩展

  • CheckWeight:检查区块的权重和长度,并确保它不超过限制。
  • CheckNonce:检查交易的nonce。包含一个类型为T::Nonce的单个有效载荷。
  • CheckEra:检查交易的时期。包含一个类型为Era的单个有效载荷。
  • CheckGenesis:检查交易提供的创世哈希。必须是交易签名有效载荷的一部分。
  • CheckSpecVersion:检查运行时版本与用于签署交易的版本是否相同。
  • CheckTxVersion:检查交易版本与用于签署交易的版本是否相同。

查找运行时聚合器文件(例如node/runtime),以查看链中包含的所有签名扩展的完整列表。

使用方法

先决条件

导入系统模块,并从系统特质派生您模块的配置特质。

示例 - 获取当前块的代码外数和父哈希

#[frame_support::pallet]
pub mod pallet {
    use super::*;
    use frame_support::pallet_prelude::*;
    use frame_system::pallet_prelude::*;

    #[pallet::config]
    pub trait Config: frame_system::Config {}

    #[pallet::pallet]
    pub struct Pallet<T>(_);

    #[pallet::call]
    impl<T: Config> Pallet<T> {
        #[pallet::weight(0)]
        pub fn system_module_example(origin: OriginFor<T>) -> DispatchResult {
            let _sender = ensure_signed(origin)?;
            let _extrinsic_count = <system::Pallet<T>>::extrinsic_count();
            let _parent_hash = <system::Pallet<T>>::parent_hash();
            Ok(())
        }
    }
}

许可证:Apache-2.0

依赖项

~17–32MB
~541K SLoC