Closed abutenkolamden closed 4 years ago
So according to Wiki a Quorum "is the minimum number of members of a deliberative assembly (a body that uses parliamentary procedure, such as a legislature) necessary to conduct the business of that group." My assumption is that a dynamic quorum will be a a quorum where the minimum can be set to different values.
For a Sub Block Contender to be committed it must meet a 2/3rds consensus (rounded up) between all delegates. That's the "ideal" situation in the network.
However this may not be possible in edge cases where nodes are going offline for maintenance, failing or malicious.
The network has a few variables to control the minimum quorum needed
When the masternodes check for consensus of a Sub Block they check to make sure that a number of delegates equal to curr-quorum submitted the same solution. So, if 20 out of 30 delegates submit matching solutions then the sub block is "in consensus" and that solution is committed and the other solutions are dropped.
In a situation where the curr-quorum number is not met by matching solutions then the network will do some check to see if the block can still pass safely.
If both of these situations are true then curr-quorum is lowered to the value of the matched solutions. In the above example curr-quorum would be set to 19.
curr-quorum is increased as the Overlay Network detects nodes coming back online and recalculates until it reaches the value of max-quorum
-I suppose a good example of why this this necessary is if a bunch of nodes get together to try and take down the network by all shutting down at the same time. The network can continue under an adjusted quorum until new nodes can be stood up to replace the malicious ones.
@raghupc if this is correct please have @abutenkolamden close
@raghupc ?
yes. please close it
Feedback from team may drive the scope of work
Acceptance criteria - confirmation from other team members (at least Jeff) that documentation is Ok to understand the product for a new developer.