Module type S.DISSEMINATION
Dissemination of messages within a group
val init_seen : int -> seen
init_seen len
initializes the queue of last seen messages with maximum queue lengthlen
.
val forward : view:view -> seen:seen -> mid:mid -> src:node -> me:node -> fanout:int -> view * seen
Select recipients to forward an incoming or outgoing message. If
mid
was alreadyseen
before, the message is not fowarded.- parameter ~view
Current view.
- parameter ~seen
Queue of last seen message IDs.
- parameter ~mid
Message ID.
- parameter ~src
Source node.
- parameter ~fanout
Number of nodes to select for forwarding.
- returns
(dsts, seen)
- parameter dsts
The list of destinations to forward to.
- parameter seen
Updated seen queue with
mid
added.