Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes how the head node accounts for PBFT results from cluster replicas, when aggregating results. The head node expects f+1 identical results, where f is the number of faulty replicas in a PBFT cluster.
We were not properly updating the map where we're aggregating the results coming from the nodes, which manifested when running PBFT consensus on >= 7 nodes.
Also, some clarity improvements - worker nodes refuse to join a PBFT cluster with less than four nodes. However, the head node does not vet the incoming execution request that this threshold is met.
Not, head node will discard execution requests that:
a) request PBFT consensus and have the number of nodes explicitly set to a value <= 4
b) request PBFT consensus with an unspecified number of nodes (-1, whoever comes can join), but less than 4 nodes apply to a roll call