Skip to content
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

parametrize justified epoch stickiness parameter #1135

Open
djrtwo opened this issue May 29, 2019 · 7 comments
Open

parametrize justified epoch stickiness parameter #1135

djrtwo opened this issue May 29, 2019 · 7 comments
Labels
general:presentation Presentation (as opposed to content) scope:fork-choice

Comments

@djrtwo
Copy link
Contributor

djrtwo commented May 29, 2019

In the fork choice document we specify a stickiness of 1 epoch for justified epochs.

Let justified_head be the descendant of finalized_head with the highest epoch that has been justified for at least 1 epoch

This parameter of "1 epoch" should be a configurable constant -- MIN_EPOCHS_TO_USE_IN_FORK_CHOICE (placeholder name).

It could also be defined in terms of slots to get fractional epochs

@ralexstokes
Copy link
Member

do you have use cases in mind that require the parametrization?

is this to allow clients to change it based on their subjective fault tolerance?
or simply to make it easy to change as we learn more about the "in the field" behavior of the fork choice (implying we may want higher stickiness when finding the justified head)

@djrtwo
Copy link
Contributor Author

djrtwo commented May 30, 2019

This would not be something that a client would change locally, but rather change across deployments of the eth2 chain. This came up when I was working with some academics on a formalization of ffg+LMDGHOST. Essentially this is just a magic number in the spec. Would be clearer to name it explicitly.

If in practice, finality on a chain is sparse and it is super forkful (maybe very fast slot times and a large attacker), the chain might want to adjust this param to something other than our selected 1

@JustinDrake JustinDrake added the general:presentation Presentation (as opposed to content) label Jun 9, 2019
@hwwhww
Copy link
Contributor

hwwhww commented Apr 20, 2020

@djrtwo It seems that this issue is gone after #1185?

@djrtwo
Copy link
Contributor Author

djrtwo commented Apr 28, 2020

It seems that stickiness was dropped in #1185 without discussion.
It was originally addressing -- https://ethresear.ch/t/beacon-chain-casper-mini-spec/2760/20

We need to discuss if we still need the stickiness of 1 epoch in the context of the bounce attack mitigations in the spec

@protolambda
Copy link
Contributor

Going through old issues to clear stale/outdated things. What is the status here, is this critical for phase 0?

@djrtwo
Copy link
Contributor Author

djrtwo commented Aug 19, 2020

definitely not critical. Might just drop it in there though...

@hwwhww hwwhww added this to the 🔵 v1.0.0 Nice-to-have milestone Aug 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
general:presentation Presentation (as opposed to content) scope:fork-choice
Projects
None yet
Development

No branches or pull requests

6 participants
@JustinDrake @djrtwo @ralexstokes @hwwhww @protolambda and others