Cool, I'll focus on the visualizations and maybe some math.
I've been brainstorming how to best show the quorum sets and also calculate some "importance" of a node in a quorum set. I started by thinking how to display a single node's full quorum set (including inner quorum sets). Probably some molecule like diagram with focus node at the top with rows of validator nodes + innerquorum sets where each row indicates 1 level deeper connection. After thinking about it -- is there really any difference between an innerquorum set and validator node with that same quorum set? So, I'll start by focusing on just one nodes full quorum set and then it might generalize to showing the entire network.
I was also thinking about some metrics that might be interesting. Please let me know if this makes sense or is in left field... these concepts aren't in the white paper which makes me nervous. Maybe they are indirectly in the implementation of a validator determining if it has a sufficiently safe quorum set... haven't ready that code yet.
Math -- sorry for my poor notation:
Starting with a single node Alpha's full quorum set (direct validators and inner quorum sets) which contains validators: A..n
I want to describe in a few different ways how much Alpha "trusts" or depends on node A.
EFFECT
How often does A have an effect on Alpha's Q()?
Because changing A from false to true can only lead to quorum truth or no effect:
Node A affects Alpha if Q(A, B..n) == true && Q(!A, B..n) == false
and
Combinations w/o A: 2(n-1)
so
Effect(a, Alpha'sQ) =
Sum over all other node combinations ( Q(A, B..n) && !Q(!A, B..n) )
/
2(n-1)
REQUIRED ( kind of like veto power )
How often is A required for Alpha's Q() to be true?
Effected AKA: Sum over all other node combinations ( Q(A, B..n) && !Q(!A, B..n) )
/
Sum over all other node combinations ( Q(A, B..n) )
INFLUENCE ( kind of like override / push through power )
How often can A influence Q() when Q() otherwise would be false?
Effected AKA: Sum over all other node combinations ( Q(A, B..n) && !Q(!A, B..n) )
/
Sum over all other node combinations ( !Q(!A, B..n) )
These can be computed pretty easily with brute force but has exponential behaviour. Still thinking about how these could be computed more effeciently with some combinations of recursion. For Q() w/o inner quorum sets they can be computed directly:
EFFECT() = (n-1)Choose(required-1) / (2(n-1))
REQUIRED() = (n-1)Choose(required-1) / SUM{i=r-1..n-1}((n-1)Choose(i))
INFLUENCE() = (n-1)Choose(required-1) / SUM{i=0..r-1}((n-1)Choose(i))