-
Notifications
You must be signed in to change notification settings - Fork 639
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(congestion_control) - fix congestion info bootstrapping trigger (#…
…11500) The congestion control bootstrapping is currently not triggered at all. This PR fixes the issue. The root cause is that the congestion control was set to default at the first chunk of the epoch where congestion control is enabled. This wasn't an issue originally because of another bug that was fixed since. The fixed bug was to use congestion info of the previous block. Now that we correctly use the most recent congestion information we need to handle the protocol upgrade some other way. I considered a few different options: 1) Make the congestion information in the chunk header an Option and have it set to None in the first chunk where congestion control is enabled. This is annoying because this Option is only needed once but will be stuck in the header forever. 2) Use the old (V2) chunk header inner in the first chunk where congestion control is enabled. This is annoying because we need to allow an older chunk header in the blocks where typically only current chunk header would be expected. 3) Set the congestion info to default in the first chunk where congestion control is enabled. This is annoying because this info would be incorrect and because we would need some other way of correctly triggering bootstrapping. 4) Adding the congestion info to the old chunk header - that is incorrect, we should never modify existing headers. 5) Have some intermediate header and multiple protocol version upgrades - this is a bit too involved. I only really considered options 1 and 2 as reasonable choices. I picked option 2 for the solution as it's more future friendly - we are only inconvenienced once and in the future congestion control will be non-optional in the header.
- Loading branch information
Showing
16 changed files
with
157 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.