Strands, slots, and alignment with heights and rounds #130
Replies: 4 comments
-
It might also make sense to put some load balancing into proposer selection. Assume that for each strand we store what was the largest height of the block that contained a proof for strand i, say last(i). So when starting a new consensus height, we order strands by increasing last(i), and then pick the proposers in this order. pros
cons
|
Beta Was this translation helpful? Give feedback.
-
@ancazamfir proposed that if instead of putting the strand number (block[h].strandNr) into the block, we put a slot number into the block (block[h].slot) we would get closer to the way Starkware is thinking about the problem now. This would mean that a block contains a slot number that corresponds to the height/round in which the value was proposed. This contrasts the PBTS flow, we the goal would be to put the slot number of the height/round of the decision (which leads to the one-off complication that the round is only fixed one block later) |
Beta Was this translation helpful? Give feedback.
-
Hi, picking up on this, not sure my reasoning is good, please correct. The intuition is that if the slots follow the consensus (decision) rounds this can be achieved in the following way: Here is an example to illustrate further (not showing the strands), with
Here we have blocks that occupy slots In this discussion we explore making the proof and slot part of the value (PBTS version 2). The implication is that the slot numbers will not strictly follow the consensus decision round numbers but rather the proposal's polka round.
The minimum time between two slots is I think this should not be a problem, at most it gives future proposers more time to build a proof, as the slot where they need to include if may occur further in the future than approximated. In the example slot 4 occurs later in second proposal as compared with first. @josef-widder @cason |
Beta Was this translation helpful? Give feedback.
-
I looked again at the blog, and post about the incentives and market for proofs (post IV) is one of the longest with many open questions. It would be great to sync with the Starkware team to discuss with them how they currently think about this complex. There are a couple of questions:
|
Beta Was this translation helpful? Give feedback.
-
After reviewing the blog entry and some discussions in the last weeks over figures like this, I use this place to collect some of my observation, so that we can start from them next year.
I will start with the figure. In the lucky path, the alignment between strands and blocks is quite nicely structured. However, in general, whenever a consensus round is not successful (e.g., if a proposer is down, or the proposer actually had not completed the proof in-time) the alignment becomes less structured. A proof for slot x>y can appear in the blockchain before the proof of slot y.
The intuition that I understood is that
The way Starkware proposed to address is to have a static plan. A priori (that is offline) it is determined in which slot which proposer proposes a proof for which strand. This imposes a static scheduling on top of a rather dynamic system, namely,
I think the same goals could be achieved by a different way of thinking about the problem.
Even with their static schedule, as we don't know in which round consensus decides (and whether the proof is actually ready when the proposers needs it), we can only have the following invariant:
With the approach of using heights and rounds to figure out which strands we are in, we only introduce complexity in height h+1 if we haven't canonicalized height h yet. Therefore, I would like to think the following way:
In this way, we do not need to match global strand numbers, but only need to refer to the previous block. As far as I understand, we maintain the same schedule as the Starkware design, but in a different formulation (and without ambiguity around canonicalized commits).
The only difference we get in the following scenario:
In this case:
Interestingly, in my proposal
Beta Was this translation helpful? Give feedback.
All reactions