Skip to content

remove Validator trait; make ValidatorSet associated to Commit#105

Merged
liamsi merged 2 commits intobucky/lite-unit-testsfrom
bucky/lite-remove-validator
Dec 28, 2019
Merged

remove Validator trait; make ValidatorSet associated to Commit#105
liamsi merged 2 commits intobucky/lite-unit-testsfrom
bucky/lite-remove-validator

Conversation

@ebuchman
Copy link
Contributor

@ebuchman ebuchman commented Dec 28, 2019

As per #96, this removes the Validator trait by making ValidatorSet an associated type of Commit. As a bonus, we eliminate dependency on the Id type 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 ...

  • Referenced an issue explaining the need for the change
  • Updated all relevant documentation in docs
  • Updated all code comments where relevant
  • Wrote tests
  • Updated CHANGES.md

@liamsi liamsi mentioned this pull request Dec 28, 2019
5 tasks
// representable as bytes, or an Id (that is basically also a hash)
// but this feels a a bit like cheating
use crate::account::Id;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIce!

Copy link
Contributor

@liamsi liamsi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@liamsi
Copy link
Contributor

liamsi commented Dec 28, 2019

OK, merging this into #104 and #104 into #96.

@liamsi liamsi merged commit 87fd046 into bucky/lite-unit-tests Dec 28, 2019
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 ebuchman deleted the bucky/lite-remove-validator branch December 28, 2019 15:49
@liamsi liamsi mentioned this pull request Dec 28, 2019
17 tasks
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants