Module type S.DISSEMINATION
Dissemination of messages within a group
val init_seen : int -> seeninit_seen leninitializes 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 * seenSelect recipients to forward an incoming or outgoing message. If
midwas alreadyseenbefore, 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
midadded.