52 个版本 (34 个主要版本)
36.0.0 | 2024 年 7 月 18 日 |
---|---|
35.0.0 | 2024 年 7 月 12 日 |
34.0.0 | 2024 年 6 月 24 日 |
33.0.0 | 2024 年 5 月 23 日 |
2.0.0-alpha.5 | 2020 年 3 月 24 日 |
#1348 在 魔豆
4,699 每月下载量
用于 15 个 crate(5 个直接使用)
2.5MB
46K SLoC
我在线模块
如果本地节点是验证者(即包含授权密钥),则该模块在每个新会话中发送心跳交易,以此作为节点当前时代在线的简单机制。
对每个时代接收的心跳进行跟踪,并在每个新时代重置。该模块公开了两个公共函数,以查询当前时代或会话中是否已收到心跳。
心跳是一个已签名的交易,使用会话密钥进行签名,并包括本地验证者链的最新最佳区块编号以及 NetworkState
。它作为未签名交易通过链外工作者提交。
接口
公共函数
is_online
- 如果验证者在当前会话中发送了心跳信号,则为 True。
用法
use pallet_im_online::{self as im_online};
#[frame_support::pallet]
pub mod pallet {
use super::*;
use frame_support::pallet_prelude::*;
use frame_system::pallet_prelude::*;
#[pallet::pallet]
pub struct Pallet<T>(_);
#[pallet::config]
pub trait Config: frame_system::Config + im_online::Config {}
#[pallet::call]
impl<T: Config> Pallet<T> {
#[pallet::weight(0)]
pub fn is_online(origin: OriginFor<T>, authority_index: u32) -> DispatchResult {
let _sender = ensure_signed(origin)?;
let _is_online = <im_online::Pallet<T>>::is_online(authority_index);
Ok(())
}
}
}
依赖项
本模块依赖于 Session 模块。
许可证:Apache-2.0
依赖项
~17–32MB
~531K SLoC