Not really relevant to this PR, but - if validators changes between two invocations of this function, then we have a problem.
Consider two invocations collectedSealingBlockInfo() in t1 and collectedSealingBlockInfo() in t2, and the first one sampled validators = [v1, v2, v3, v4] and the second once sampled v2, v3, v4, v5]'.
The first one got a vote from v1 and the second one got a vote from v2 but v1 is not in the second.
We reached the threshold f+1 but with an illegal count.
Originally posted by @yacovm in #573 (comment)
Not really relevant to this PR, but - if
validatorschanges between two invocations of this function, then we have a problem.Consider two invocations
collectedSealingBlockInfo()int1andcollectedSealingBlockInfo()int2, and the first one sampledvalidators = [v1, v2, v3, v4]and the second once sampledv2, v3, v4, v5]'.The first one got a vote from
v1and the second one got a vote fromv2butv1is not in the second.We reached the threshold
f+1but with an illegal count.Originally posted by @yacovm in #573 (comment)