-
Notifications
You must be signed in to change notification settings - Fork 216
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 Rust related follow up #110
Comments
With respect to module structure, I would say there are a few goals:
The last point is to make it clear where to look for say all the implementations of the So I think this suggests we try to eliminate the dependency of
The independence of Thoughts? This also relates to #7 (comment) which proposes high level crate structure for this repo. |
Re @xla review on #114 (#114 (review)) - consider not passing the Also consider renamings:
|
Few more points from discussion after latest review #114 (review):
In 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. |
If we don't pass in the Removed the store from the bisection logic in 31550c3 and 8b2b964 of #132 (caller is now responsible to at least store the final resulting state, where prev. they would just pass in a store). For consistency, we should do the same with |
Looks like that concern is resolved in #132 now by returning the list of all bisected headers. That PR addressed a bunch of these issues. I think it's time to close this issue and open a few new ones to capture the remaining points. |
Replacement for elements of #96 more specific to Rust implementation style and architecture.
We should update the ADR with the relevant changes from here as well.
Types:
validate_vals_and_commit
a method on Commit (Light client: further trait impls, improvements, and tests #84 (comment))validate_next_vals
!Client
type to holdStore
andRequester
(?) (Light client: bisection, store, requester #100 (comment))trust_threshold
andtrusting_period
in the Store (?) (Light client: bisection, store, requester #100 (comment))TrustedState::new
taking header h-1 and validators for h (Light client: bisection, store, requester #100 (comment))verify
taking vals for the right height (Light client: bisection, store, requester #100)trust_level
satisfy Copy or Clone and don't pass by reference (Light client: bisection, store, requester #100).hash()
(Light client impl followup #96 (comment))Module Structure:
tendermint
types, eg.Hash
Errors:
Error::RequestFailed
should wrap underlying requester errors (Light client: bisection, store, requester #100 (comment))Error::InvalidSignature
withErrorKind::SignatureInvalid
The text was updated successfully, but these errors were encountered: