-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow mixed replay descendant + gossip tracking for optimistic confirmation #34279
Comments
@carllin following up from your comment #34014 (comment) The proof https://docs.solana.com/proposals/optimistic_confirmation works with
Why is it the case that OC can't be safely rolled up? |
We don't have the back pointers implemented for each vote, so the Range(v) is just the vote itself. Thus there's no range of ancestors that you can roll up to. |
I understand that's the case for gossip votes, but for replay votes you have the ancestors available right? |
For the "Replay rollup" pathway are you talking about the vote threshold for lockout depth 8? |
I'm referring to solana/core/src/replay_stage.rs Lines 757 to 779 in 71c1782
which uses the voted stakes populated by compute bank stats to "rollup" voted stake from descendants to ancestors per replayed fork: Lines 423 to 429 in 71c1782
This allows us to detect optimistically confirmed slots that don't have an individual vote of 67%. Consider the example:
After replaying we can conclude that 1 is optimistically confirmed because the fork descending from it has a total of 33 + 10 + 30 = 73%. However this is not possible through the gossip vote listener which can only aggregate votes for individual slots. What i'm proposing here is a speedup for the scenario where 33% voted on slot
The gossip vote listener will tell us that 33% has voted on slot I don't think this is that big of a deal as eventually a leader on the majority fork will include these vote txs in a later block or the 33% will vote again/refresh, but just wanted to document it here. |
Ah I see, you're talking about "duplicate confirmed" |
just OC, duplicate confirmed does use the same pathway so maybe a benefit there as well, but was mostly focusing on OC here. |
Problem
Optimistic confirmation for slot S is aggregated in 2 separate pathways:
There is a potential speedup case that we are missing:
This is a potential timesave when there is a competing fork. Imagine a potential scenario:
Although S has supermajority stake vote, we have to wait until the validators from (1) vote on a descendant of S + 1 which lands in the major fork leader in order to optimistically confirm a block on the fork.
The potential timesave is allowing a mixture of descendants and gossip, as (1) would land in gossip and (2) would land in descendant rollup.
The text was updated successfully, but these errors were encountered: