-
Notifications
You must be signed in to change notification settings - Fork 225
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
Light client time followup #137
Comments
Note to myself: the spec calls |
Also, isn't there a weird edge case, where this method passes:
but only because the trusted header has |
Yes but that's why we need to ensure the header is not ahead of our local clock! ie |
Ah, I think I see how this works: we make sure |
This has been addressed and landed in master: tendermint-rs/light-client/src/predicates.rs Lines 79 to 120 in 740cb66
|
As per #110 (comment):
untrusted_header.bft_time() > trusted_header.bft_time()
inverify_single
(see Valid TrustThresholdFraction and further simplify tests code #142)untrusted_header.bft_time() < now + X
for every header we fetchIn theory, if we check that time is monotonic, we only need to check that the highest height we're trying to sync to is not ahead of our local clock (ie. we don't need to check this for every header, since all the other headers are less than the highest one). However, if we only check for monotonic time after we've trusted a pivot header, its possible we would trust a pivot header who's time is too far ahead of our local clock, and hence might be outside the trusting period.
The text was updated successfully, but these errors were encountered: