显示软件包…
1 个稳定版本
2.0.0 | 2021 年 4 月 4 日 |
---|---|
0.0.0 |
|
#1 在 #tetcore
512 次每月下载
用于 71 个 软件包(59 个直接使用)
1MB
24K SLoC
系统模块
系统模块提供了对核心类型和跨切工具的底层访问。它是其他贵族与 Tetcore 框架组件交互的基础层。
概述
系统模块定义了 Tetcore 运行时使用的核心数据类型。它还提供了几个实用函数(见 Module
)供其他 FABRIC 贵族使用。
此外,它管理外联数据、索引、事件记录和摘要项等存储项,以及其他支持当前块执行的事物。
它还处理一些底层任务,如记录存档、临时存储条目的基本设置和拆卸,以及对前一个区块哈希的访问。
接口
可调用的函数
系统模块不实现任何可调用的函数。
公共函数
有关公开可用函数的详细信息,请参阅 Module
结构。
签名扩展
系统模块定义了以下扩展
CheckWeight
:检查块的大小和长度,并确保不超过限制。CheckNonce
:检查事务的随机数。包含单个类型为T::Index
的有效载荷。CheckEra
:检查交易的时期。包含一个类型为Era
的单一有效负载。CheckGenesis
:检查提供的交易创世哈希。必须是交易已签名有效负载的一部分。CheckSpecVersion
:检查运行时版本是否与用于签名交易的版本相同。CheckTxVersion
:检查交易版本是否与用于签名交易的版本相同。
查找运行时聚合器文件(例如 node/runtime
),查看链中包含的完整已签名扩展列表。
用法
先决条件
导入系统模块,并将您的模块配置特从未签名trait派生。
示例 - 获取当前块的交易数量和父哈希
use fabric_support::{decl_module, dispatch};
use fabric_system::{self as system, ensure_signed};
pub trait Config: system::Config {}
decl_module! {
pub struct Module<T: Config> for enum Call where origin: T::Origin {
#[weight = 0]
pub fn system_module_example(origin) -> dispatch::DispatchResult {
let _sender = ensure_signed(origin)?;
let _extrinsic_count = <system::Module<T>>::extrinsic_count();
let _parent_hash = <system::Module<T>>::parent_hash();
Ok(())
}
}
}
许可证:Apache-2.0
依赖项
~3–11MB
~119K SLoC