-
Notifications
You must be signed in to change notification settings - Fork 4.5k
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: