remove Validator trait; make ValidatorSet associated to Commit#105
Merged
liamsi merged 2 commits intobucky/lite-unit-testsfrom Dec 28, 2019
Merged
remove Validator trait; make ValidatorSet associated to Commit#105liamsi merged 2 commits intobucky/lite-unit-testsfrom
liamsi merged 2 commits intobucky/lite-unit-testsfrom
Conversation
This was referenced Dec 28, 2019
Merged
liamsi
reviewed
Dec 28, 2019
| // representable as bytes, or an Id (that is basically also a hash) | ||
| // but this feels a a bit like cheating | ||
| use crate::account::Id; | ||
|
|
Contributor
liamsi
pushed a commit
that referenced
this pull request
Dec 28, 2019
* MockHeader and test_is_within_trust_period * remove Validator trait; make ValidatorSet associated to Commit (#105) * remove Validator trait; make ValidatorSet associated to Commit * remove stale comment
ebuchman
added a commit
that referenced
this pull request
Dec 29, 2019
* Add bisection to light client module: - implement `can_trust` according to the latest spec CanTrustBisection (wip) - add a `Requester` and a `Store` trait - sue refs in parameters (as they are used in several places and we don't want to Copy) * Group params h1 & ha_next_vals into a type `TrustedState` - reduce params to clippy threshold (7); still a lot ... - rename vars for better readability * Add VerifyHeader logic from spec: - rename expired to is_within_trust_period to be closer to the spec - use TrusteState trait in check_support params - use TrusteState in lite tests * Review: doc improvements and minor improvements on naming * Review: doc improvements * More doc improvements * Minor doc improvement * MockHeader and test_is_within_trust_period (#104) * MockHeader and test_is_within_trust_period * remove Validator trait; make ValidatorSet associated to Commit (#105) * remove Validator trait; make ValidatorSet associated to Commit * remove stale comment * Fix clippy errors (#108) * Review comments: (#107) * Review comments: - update some comments / documentation - verify vals (not next vals) - store header and vals in trusted state * One offs & renaming related to trusted state * Rename & remove redundant store of trusted state: c - an_trust -> can_trust_bisection - remove a redundant check for trust period - remove redundant adding state to the store (added TODO) * Bucky/some light follow up (#109) * use ? instead of return Err(err) * remove unused errors * move a validation and add TODOs about them * check_support returns early for sequential case * drop let _ = * add comment to voting_power_in about signers Co-authored-by: Ethan Buchman <ethan@coinculture.info>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As per #96, this removes the Validator trait by making ValidatorSet an associated type of Commit. As a bonus, we eliminate dependency on the
Idtype from the light module.This allows implementations of Commit to access underlying functionality of a validator set (like its validators and signature verification with them) without requiring that functionality to be part of the light client module. This should also make it much easier to write tests for the module now, since we don't need to mock a
verify_signature.I'm not sure if this is the best way to do things, but it seems to be along the right lines ...