-
Notifications
You must be signed in to change notification settings - Fork 156
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
Epoch Transition Formal Spec <-> Executable Spec Discrepancies #1685
Comments
thank you for raising all of this @xenocidewiki !
There is currently no check for this, but I agree that it makes sense to add one.
I propose we change the name of the function to
yes indeed, I will change the implementation to use
It actually doesn't matter if we use
This will be addresses by #1319, I just haven't had any time to get to it, but hope to do so very soon. Note that this data is entirely independent of any chain validation, and is only used for pool ranking by wallets.
Yes, this is a bit akward in the haskell code. If the global constant |
also adding a check for the quorum constant no semantic changes see github issue #1685
Found a couple of issues regarding Epoch.hs in the executable spec, and pages 55-56 in the formal spec.
It is mentioned that "votedValue is only well-defined if Quorum is greater than half thenumber of core nodes, i.e. Quorum>|genDelegs|/2" -> I could not find such a check anywhere in the code.
The formal spec function votedValue is named votedValuePParams in the code (L79). The code also implements the function using 3 parameters as opposed to 1 (as specified in the formal spec).
On L128 of the code we are reading the utxo state and getting ppup, this should be pup because that's what utxo state contains, and according to the formal spec this is also what we are getting, seems like a small typo.
Some questions:
The text was updated successfully, but these errors were encountered: