File List
Not logged in

The union of all files from all check-ins in directory wiki_references/2017/software/MaidSafe_net/src_from_GitHub/the_repository_clones/routing_sims   [history]

Routing simulations

Code to simulate the security of routing Quorums under various conditions.

Linux Issues
Build Status Stories in Ready
MaidSafe website SAFE Dev Forum SAFE Network Forum


Two probabilities are output: the probability that any group in the network is prevented from reaching the correct result via quorum, and the probability that any group is compromised (i.e. reaches the wrong result via quorum).


Three tools are available, calculating the output probabilities in different ways:

  1. DirectCalcTool — this assumes every group has the minimum size given and uses probability theory to calculate the result.
  2. SimStructureTool — this simulates the development of a network, then uses probability theory to calculate the result given these group sizes. Does not simulate node ageing.
  3. FullSimTool — this simulates the development of a network (only including the non-malicious nodes), then simulates an attack (where only malicious nodes are added), which may or may not result in lost quorum and compromised quorum. The simulation is then repeated many times (see -p parameter) to obtain a probability. Currently this always simulates relocation due to node ageing, regardless of quorum used.


Two types of quorum are implemented:

  1. SimpleQuorum — quorum is achieved when the given proportion of nodes send a response
  2. AgeQuorum — quorum requires both the given proportion of nodes and the given proportion of sum of the nodes ages.

Attack strategy

The following strategies have been implemented. This is by no means an exhaustive list of all possible strategies!

  1. UntargettedAttack — malicious nodes never reset themselves
  2. SimpleTargettedAttack — malicious nodes choose a target group, and reset themselves as soon as they are not found in that group. This strategy is completely useless when an age-based quorum is used since malicious nodes do not get the chance to age!

Possible variations:


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the MaidSafe Contributor Agreement, version 1.1 (CONTRIBUTOR), shall be dual licensed as above, and you agree to be bound by the terms of the MaidSafe Contributor Agreement, version 1.1.