Types
Eventually, we will have only 3 types for validators.
ctypes::Validator - It has two fields: public_key and weight.
ctypes::ValidatorSet - It is a newtype of Vec<Validator>, but it save it sorted, and provides methods to save to/load from state. Also, its hash will be directly written in block header.
foundry_graphql_engine::Validator GraphQL resolver for validator.
All other types will be completely removed. (NextValidatorSet, CurrentValidatorSet, SimpleValidator, WeightOrderedValidators, ...)
Naming
Validators -> Validator set
delegation/deposit/ ... -> weight
Next / Current
Both will be saved, but share same type ValidatorSet.
Coordinator-Module interface
Will be asked to return only Vec<Validator> as the validator set.
Test
We have to add various e2e tests that involve multiple nodes + varying validator set.