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
fn average_session_length() -> BlockNumber
fn average_session_length() -> BlockNumber
Return the average length of a session.
This may or may not be accurate.
Return an estimate of the current session progress.
None should be returned if the estimation fails to come to an answer.