-
Notifications
You must be signed in to change notification settings - Fork 124
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
feat: add consumer genesis time query #2366
Conversation
cs, ok := k.clientKeeper.GetClientConsensusState( | ||
ctx, | ||
clientID, | ||
params.InitialHeight, |
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.
Aren't old consensus states pruned? If yes, this query would stop working after some time.
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.
Not sure, needs checking.
However, we can make it so that the query runs for chains that haven't yet started (passed spawntime).
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.
Those consumers will not have a client and thus no genesis time.
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.
@insumity The reason for this query is starting the consumer chain -- creating the genesis file with a correct timestamp that will not result in expired consumer clients on the provider. The consensus state will not be pruned at least until a new client update is received by the provider (otherwise the client update will fail). By this time, the consumer chain is already running so the query is no longer needed.
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.
I thought he was saying that after starting a chain (making it run, with relaying enabled) the initial height consensus state would get pruned. Thus, state at block 1 would not be queryable from GetClientConsensusState
after a while.
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.
Consensus states are eventually pruned, but it takes a while. Otherwise client updates would not work. So for sure, the initial consensus state will remain on the provider for a while. The important part is that it will remain there for sure until either the consumer chain launches or the consumer light client on the provider expires.
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.
I see. Thanks for the explanation.
Co-authored-by: insumity <karolos@informal.systems>
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.
Great work @sainoe.
Description
Closes: #2280
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if the change is state-machine breakingCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
the type prefix if the change is state-machine breaking