Reduce transmission duplication by reducing propagation to other validators #3493
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
Currently, it can take up to a minute on mainnet for a transaction to be confirmed or rejected. One major part of a transaction lifecycle, is how fast it is included into a batch proposal.
A core feature of Narwhal is that transmissions may be included in multiple proposals. The current setup of snarkOS has an overreliance on safety, because clients and validators propagate valid seen transmissions to all of their peers.
However, there's currently no good reason to play it this safe. This PR proposes to reduce the propagation to "only" 3 other validators. Transmissions will still eventually reach all validators, but they are more likely to be certified by the other validators try to include it in their own proposal.
Note for more context this section from the Narwhal paper:
Test Plan