Use IdtyIndex as Session ValidatorId

this issue was renamed after discussion

We have a strange pattern: only member identities are allowed to be validators, and they are identified by their accountid which can change.

There are too many layers:

  1. pallet identity
  2. pallet membership (sorry)
  3. pallet smith-members
  4. pallet authority-members
  5. pallet session

I think we should at least merge smith-members and authority-members which are both adapters for pallet session.

Authority-members already provides an interface for pallet session with pallet_session::Call::<T>::set_keys and pallet_session::SessionManager implementation (that uses the results coming from go_online and go_offline).

Two options here:

  • use identity index as validator id
  • keep account id as validator id but update it on change_owner_key (implementation already available) so it still has a meaning

In both case, the Members storage item does not need to map to somthing and can simply be a set (a map to ()).

Marking this as #bug because it's unspecified behavior. Not sure however in which scenario it could be problematic.

Edited by Hugo Trentesaux