-
Notifications
You must be signed in to change notification settings - Fork 631
Conversation
81a10ed
to
f90a211
Compare
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!
I've just reproduced a successful "hard fork" on my devnet cluster by following these steps again, using the CDEC-610 branch. This gives me fairly high confidence that this solution works, but I would be more confident if we had a secondary reproduction from a different team member. Since setting up a devnet cluster is a pain, it would be ideal if we had a method to perform the necessary rolling restart on a local cluster. |
f90a211
to
9971300
Compare
The `verifyBlockAndSoftwareVersions` function combines the `verifySoftwareVersion` and `verifyBlockVersion` functions, and we add tests for the various allowed & disallowed state transitions between software + block versions.
Since protocol-only updates are now allowed, these tests should return `Right ()`.
Here we use the `bvdUnlockStakeEpoch` field and compare it to a magic constant, which turns the field into essentially a Bool. Our predicate tells us if we're in the OBFT era, and if we should enable OBFT code.
These are the places where it's necessary to know the @ConsensusEra@ and act according to that value.
9971300
to
9327365
Compare
I've just dropped the extraneous DEBUG commits, and force-pushed the branch. I'm removing the For future reference, these are the modifications to the
|
Description
Implement a hard fork mechanism to transition from the legacy codebase to the new codebase.
I'm labeling with
DO NOT MERGE
because the debug commits must be dropped before this is merged.Linked issue
https://iohk.myjetbrains.com/youtrack/issue/CDEC-610
Type of change
Developer checklist
Testing checklist