-
Notifications
You must be signed in to change notification settings - Fork 56
PBTS: spec reorganization, summary of changes on README.md #399
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great. Thanks. I just left two text suggestions to clarify the context a bit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some nits, but nothing major. A general question: Is there a value to keeping the old versions and drafts in the repo? They are accessible via the git history and, in my view the clutter the repository, making it a bit unclear. Additionally, is there a reason to continue using the _draft
suffix for these files? As far as I can tell, this is no longer a draft.
Assuming that the voting power controlled by Byzantine validators is bounded by `f`, | ||
the cumulative voting power of any valid `Commit` set must be at least `2f+1`. | ||
As a result, the timestamp computed by `BFTTime` is not influenced by Byzantine validators, | ||
as the weighted median of `Commit` timestamps comes from the clock of a non-faulty validator. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure I understand why this is true. If f
of the voting power is controlled by byzantine validators, couldn't they shift the median by generating faulty timestamps?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The point here is: if Byzantine validators produce timestamps in the past (or the future), when the 2f + 1
timestamps are ordered, the f+1
th timestamp will not be in the past (or future).
by simplifying the way this situation is handled, | ||
from a recursive reasoning regarding valid blocks that are re-proposed. | ||
|
||
The full solution is detailed and formalized in the [Protocol Specification][algorithm] document. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is linked right below, do we need to link it here as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, ehehhe.
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
I agree, I would remove the |
Let's use the suffix |
* PBTS: brief context and proposal added to README * PBTS: summary of algorithmic solution added to README * PBTS: Context section of README improved * PBTS: fixing links and page titles * PBTS: moved first drafts to v1/, links updated * PBTS: added issues to README, link to arXiv PDF * PBTS: brief context and proposal added to README * PBTS: summary of algorithmic solution added to README * PBTS: Context section of README improved * PBTS: fixing links and page titles * PBTS: moved first drafts to v1/, links updated * PBTS: added issues to README, link to arXiv PDF * Apply suggestions from code review Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com> * Fixing linting problems Co-authored-by: Daniel Cason <cason@gandria> Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
Folks, these are my notes while reading the PBTS spec before the meeting. So some of those comments are now obsolete after the discussion and clarifications. Still, I think those have some value in the sense those were the questions I had by just reading the spec and having little context on what PBTS is. Don't hesitate to come back to me if something is not clear.
|
A brief point here, before going further on @sergio-mena comments. Yes, we assume a synchronous system with respect to the propagation of While I do agree those are strong assumptions, they don't affect safety. The non-observance of the synchronous assumptions jeopardize liveness, as blocks will be arbitrarily rejected. Two blocks are not decided under any timing behavior, that is, even if (most) clocks are not synchronized and proposals take more than |
Thanks @cason for clarifying. It makes sense to me. We can keep safety out of the discussion. |
…t#399) * PBTS: brief context and proposal added to README * PBTS: summary of algorithmic solution added to README * PBTS: Context section of README improved * PBTS: fixing links and page titles * PBTS: moved first drafts to v1/, links updated * PBTS: added issues to README, link to arXiv PDF * PBTS: brief context and proposal added to README * PBTS: summary of algorithmic solution added to README * PBTS: Context section of README improved * PBTS: fixing links and page titles * PBTS: moved first drafts to v1/, links updated * PBTS: added issues to README, link to arXiv PDF * Apply suggestions from code review Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com> * Fixing linting problems Co-authored-by: Daniel Cason <cason@gandria> Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
No description provided.