Context
We recently launched Nomination Pools which enables any Polkadot user (even with low amounts of $DOT) to become nominator via these bonded pools and earn staking rewards. All nomination pools have the following roles today - Depositor, Nominator, State Toggler and Root. You can read more about them here.
We are now looking into adding commissions for pool operators as an incentive to manage a pool. This will also require us to add another role Manager (still looking for suggestions for a better name) which can set/modify commission rate.
Since it is infeasible to keep adding roles every time we add a new functionality to nomination pools, we wanted to open a discussion with the community about their thoughts and ideas on how to go about this.
Dumping my general thoughts
We do want to add multiple roles for mutually exclusive functions since it can be useful in what we call as signalling. For example, if a pool wants to signal the commission rate will never change, they can kill the Root and the Manager account to effectively lose the ability to change it forever.
Saying that, we should always look into combining similar functions in a common role (thinking futuristically if we have to) to keep the roles to a manageable number.
Changes to the roles we are proposing
Add a new role Manager that is responsible for setting commission rates (and possibly other configuration parameters in future)
Rename State-Toggler role to be called Bouncer which is much more concise (and sounds cooler).
Random thought that isn’t maybe really helping you with your overall question. I would recommend to change Role to some bitflags. This could significantly reduce the state size when most of the roles are being done by the same account. The state would be something like:
Will it be user friendly for all these roles for an end user? Like I think we are only thinking for people who are already on Dotsama eco. The feature has a lot of options which can confuse and intimidate and end user. My thoughts
Will it be user friendly for all these roles for an end user? Like I think we are only thinking for people who are already on Dotsama eco. The feature has a lot of options which can confuse and intimidate and end user. My thoughts
For users that are not interested, these roles can easily be abstracted away.
My main interest in having roles is, as @ankan pointed out, the ability to freeze some of them by removing them. Basically, with the current setup, the instance your remove your root role, your freeze the current setup. So you can configure roles as nominator to be a smart contract, a DAO, and such, and destroy roles like commission, signaling that you never intend to raise your commission.