显示软件包…
1 个稳定版本
2.0.0 | 2021 年 4 月 4 日 |
---|
#50 在 #tetcoin
170 每月下载次数
用于 24 个软件包(14 个直接)
1MB
24K SLoC
时间戳模块
时间戳模块提供了获取和设置链上时间的功能。
概述
时间戳模块允许验证者为每个区块设置和验证一个时间戳。
它使用固有数据来提供时间戳,由区块作者提供,并由其他验证者验证/验证。每个区块只能设置一次时间戳,并且必须在每个区块中设置。设置新时间戳之前可能存在时间限制。
注意:时间戳模块是查询链上时间的推荐方式,而不是基于区块号的方法。基于区块号的时间测量可能由于累积计算错误而引发问题,因此应避免使用。
接口
可调度的函数
set
- 设置当前时间。
公共函数
get
- 获取当前区块的当前时间。如果在此函数设置时间戳之前调用此函数,它将返回上一个区块的时间戳。
配置获取器
MinimumPeriod
- 获取链的块之间的最小(建议)周期。
使用方法
以下示例显示了如何在自定义模块中使用时间戳模块查询当前时间戳。
先决条件
将时间戳模块导入到自定义模块中,并从时间戳特例派生模块配置特例。
获取当前时间戳
use fabric_support::{decl_module, dispatch};
use fabric_system::ensure_signed;
pub trait Config: timestamp::Config {}
decl_module! {
pub struct Module<T: Config> for enum Call where origin: T::Origin {
#[weight = 0]
pub fn get_time(origin) -> dispatch::DispatchResult {
let _sender = ensure_signed(origin)?;
let _now = <timestamp::Module<T>>::get();
Ok(())
}
}
}
来自 FABRIC 的示例
会话模块使用时间戳模块进行会话管理。
相关模块
许可:Apache-2.0
依赖项
~3–14MB
~168K SLoC