wip, feat(votor): fast leader handover - milestone 1 #448
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.
Problem
This PR implements fast leader handover, up to Milestone 1. See #293 for more detail.
This is still work in progress.
Milestone 1
Modify Entry to allow the dissemination of a "special reset indicator." If slot s's proposer receives a ParentReady notification with associated (s', hash) that doesn't match the block parent that is optimistically being built upon, triggering a parent change, then the proposer will disseminate this "special reset indicator." Naturally, all transactions disseminated up to the special reset (call these "optimistic transactions") will not affect state.
In Milestone 1, the proposer simply stops including further transactions. We essentially have an empty block. Launching Milestone 1 is very undesirable, since the leader from s - 1 can clearly impact block rewards for the following leader.
Milestone 2
Allow the proposer to include transactions that build upon the revised parent after the special reset.
In Milestone 2, we do NOT re-submit optimistic transactions to the scheduler. Milestone 2 is still undesirable, since e.g., transactions with high priority fee that were optimistically disseminated would now no longer be included in the block.
Milestone 3
In addition to the features in Milestone 2, we re-submit optimistic transactions to the scheduler.