pub trait EstimateNextSessionRotation<BlockNumber> {
fn average_session_length() -> BlockNumber;
fn estimate_current_session_progress(
now: BlockNumber
) -> (Option<Permill>, Weight);
fn estimate_next_session_rotation(
now: BlockNumber
) -> (Option<BlockNumber>, Weight);
}
Expand description
Something that can estimate at which block the next session rotation will happen (i.e. a new session starts).
The accuracy of the estimates is dependent on the specific implementation, but in order to get the best estimate possible these methods should be called throughout the duration of the session (rather than calling once and storing the result).
This should be the same logical unit that dictates ShouldEndSession
to the session module. No
assumptions are made about the scheduling of the sessions.
Required Methods§
sourcefn average_session_length() -> BlockNumber
fn average_session_length() -> BlockNumber
Return the average length of a session.
This may or may not be accurate.
sourcefn estimate_current_session_progress(
now: BlockNumber
) -> (Option<Permill>, Weight)
fn estimate_current_session_progress(
now: BlockNumber
) -> (Option<Permill>, Weight)
Return an estimate of the current session progress.
None should be returned if the estimation fails to come to an answer.
sourcefn estimate_next_session_rotation(
now: BlockNumber
) -> (Option<BlockNumber>, Weight)
fn estimate_next_session_rotation(
now: BlockNumber
) -> (Option<BlockNumber>, Weight)
Return the block number at which the next session rotation is estimated to happen.
None should be returned if the estimation fails to come to an answer.