virto-network / virto-node

Virto Network blockchain node.
GNU General Public License v3.0
21 stars 10 forks source link

Vote multipliers #406

Open olanod opened 3 months ago

olanod commented 3 months ago

We already have the concept of vote multiplier when voting with ranks, I propose we generalize on the concept where rank becomes just one of the possible multipliers. We would remove the decision method Rank and add an optional gerneric type M to each of the other variants, current Rank becomes a special case of Standard + a multiplier that takes ranks into account.

A pallet config T::Multiplier can implement a trait VoteMultiplier { type Multiplier } that enables for all kinds of governance enhancements that don't need to go into the communities pallet code base. Besides standard ranks we can introduce things such as conviction voting, altering vote based on account activity, multiplier for staked assets, custom per-community-multipliers via smart contracts where a community could decide to increase a member's vote based on custom attributes set by the community on the membership of the user ... to give an example.