-
Notifications
You must be signed in to change notification settings - Fork 87
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
Extend PBFT tests with protocol parameter update proposals/votes/endorsements/adoption #1514
Comments
Ideally we'd merge these two sets of tests, but that's harder: IntersectMBO/ouroboros-consensus#725. |
@nfrisby has been busy tracing down other problems. Moving this to the next sprint. |
I've familiarized myself with the relevant parts of Please confirm two observations:
|
I have to first figure out how these features are all supposed to work before I can write code to test it. This large comment is the result. Since it is essentially documentation and code review, is there a better place for it to live? I anticipate raising some Issues as a result of this review, but haven't done so yet. I plan to at least discuss the details with @edsko first. From skimming the Byron ledger spec pdf and some of its references and inspecting the
In summary, the following diagram tracks the progress of a proposal that's eventually adopted. For other proposals, the path short circuits to a "rejected/discarded" status at some point.
I have some concerns that maybe should become Issues.
The above has some implications for this Issue.
Edit: As it turns out, since Edit: The answer on Issue 1725 implies that |
@dnadales , could you confirm #1514 (comment) ? |
Yes.
As far as I remember we wouldn't be changing the slot duration on protocol updates. At least not as a protocol parameter.
This sounds reasonable.
Yup, seems right. CC: @nfrisby |
Thanks @dnadales !
This will happen, albeit indirectly: protocol updates determine the timing of the hard fork, and the hard fork can change the slot length. This is however the only place where slot lengths can change. |
Thank you both.
@edsko How does that happen? Are you referring to a software update proposal as opposed to a protocol (parameter) update proposal? |
Uh, yes, I think that might be right. @dcoutts or @JaredCorduan can confirm. |
I just Without retuning the other The test takes the most direct path:
@edsko Is that sufficient to close this Issue? If not, can we replace it with a lower priority/urgency Issue? Thanks. |
1747: check that Byron can increment its adopted protocol version r=nfrisby a=nfrisby I'm not sure if this should be considered to fully address #1514, but it's good first step. It originally that #1161 is high-priority because of votes: they are replicated and fill up the blocks, making the test quite expensive. Other transactions (so far) haven't been as problematic because duplicate transactions other than votes are invalid. Therefore this PR is rooted on top of a potential fix for 1161; it's blocked by the corresponding PR. Good news, though: the protocol version update is succeeding when expected. I'm opening this as Draft since it currently includes the latest state of the other PR. Co-authored-by: Nicolas Frisby <[email protected]>
Yes, we can close this. Opened #1768 for testing protocol parameter changes (medium priority), and IntersectMBO/ouroboros-consensus#703 for testing non-ideal voting scenarios (low priority). There is also your existing #1733 about testing software version updates, which we think is still high priority; see #1733 (comment). We suggest to look at #1733 and then move on to to Shelley, and in particular, start looking at #1770 . |
The existing PBFT tests already deal with delegation certificates. They should be extended with update proposals/votes/endorsements. I think the general setup would be similar: "posting the delegation certificate" would correspond to posting an update proposal and having nodes vote on it, and then the proposal is endorsed when "enough" nodes are restarted (which is also required for delegation certificates). We should then also verify somehow that the update proposal is in the end endorsed -- for example, change a protocol parameter and then produce a block that depends crucially on the new parameter.
The text was updated successfully, but these errors were encountered: