Update fetch timeouts as a factor of committee size #3139
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.
Motivation
This PR updates the
MAX_FETCH_TIMEOUT_IN_MS
to a dynamic timeout based on the number of validators in the committee set.The proposed formula for the fetch timeout is
BASE_FETCH_TIMEOUT_IN_MS
+X
ms per validator in the committee set with a maximum of 30 seconds. ThisX
is currently set to 200ms, but can be adjusted based on need.The
BASE_FETCH_TIMEOUT_IN_MS
is the originalMAX_FETCH_TIMEOUT_IN_MS
from before the change, so some example values for timeouts would be:10 validators => 200 * 10 + 7500 = 9500ms
50 validators => 200 * 50 + 7500 = 17500ms
100 validators => 200 * 100 + 7500 = 27500ms
113+ validators => 30000ms
Related PRs
Based on https://github.com/AleoHQ/snarkOS/pull/3135