Automaton.Score
Module for peers scores
type time = Time.t
type topic = Topic.t
val newly_connected : (topic, span) Gossipsub_intf.score_limits -> t
newly_connected params
creates a fresh statistics record.
remove_peer ps ~retain_duration
will either return None
if the peer statistics can be cleared, or Some ps'
with ps'
some statistics to be retained for at least retain_duration
.
expires ps
returns None
if the score statistics has no expiration time or Some t
if it expires at time t
.
graft ps topic
allows to measure the time spent by the peer in the mesh. It is to be called upon grafting a peer to topic
.
prune ps topic
allows to measure the time spent by the peer in the mesh. It is to be called upon pruning a peer from topic
.
first_message_delivered ps topic
increments the counter related to first message deliveries and mesh message deliveries on topic
by the associated peer.
duplicate_message_delivered ps topic validated
increments the counter related to near-first mesh message deliveries on topic
by the associated peer. validated
is the time at which the message was seen by the automaton for the first time.
invalid_message_delivered ps topic
increments the counter related to invalid messages sent by the associated peer.
set_application_score ps score
sets the application-specific score. This score can be positive or negative.
refresh ps
returns Some ps'
with ps'
a refreshed score record or None
if the score expired. Refreshing a ps
allows to update time-dependent spects of the scoring statistics.
val zero : value
The zero score value, corresponding to a neutral score.
val of_float : float -> value
Convert a float into a score value.
include Mavryk_stdlib.Compare.S with type t := value
include Mavryk_base.TzPervasives.PRINTABLE with type t := t
val pp : Stdlib.Format.formatter -> t -> unit
val pp_value : Stdlib.Format.formatter -> value -> unit
module Introspection : sig ... end
module Internal_for_tests : sig ... end