-
Notifications
You must be signed in to change notification settings - Fork 16
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
GHOST estimator should return _children_ of the heaviest subtree. #28
Comments
The purpose of the estimator here is to return the tip blocks winning under the GHOST rule. It doesn't return new blocks for proposal from a given protocol state. We should introduce a dichotomy in the usage of estimator: generate new blocks vs. verify blocks in protocol state. The estimator function that generates new blocks will be useful in describing validator behavior, and hence isn't mentioned in this draft (which concerns itself with reasoning about things after we reach a particular protocol state). |
I understand that the GHOST function is meant to return the winning tips. If I'm not misreading this, I think the definition 4.31 should be something like this instead: |
Yes but it's actually even worse than that because the way it is defined now, it goes into an infinite recursion:
Sidenote: |
No, I'm not a maintainer. |
I'm not a current maintainer. Unaware of the status of this repo. |
Definition 4.31 (Casper the Friendly Ghost) gives the estimator as:
ℰ(σ) = GHOST({g}, σ)
which is the set of all blocks occurring in σ that are reachable from the genesis block g by always picking a child with maximum score. In particular, all elements of ℰ(σ) are blocks that are already the estimate of a message in σ, so that estimator wouldn't allow creating new blocks.
Should that definition be changed to instead allow all conceivable children of the elements of GHOST({g}, σ)? Because the next estimate should not be a block that has been proposed before, but a new child.
The text was updated successfully, but these errors were encountered: