Files
pezkuwi-subxt/substrate/frame/ranked-collective/README.md
T
Gavin Wood 5595f10245 Ranked Collective pallet (#11548)
* Ranked Collective pallet

* Fixes

* benchmarks

* Weights

* Allow class voting in rank
Use bare ayes for calculating support.
Allow only promotion/demotion by one rank only.
Allow removal of member with rank zero only.
Use new Tally API

* Index by rank, still O(1).

* Custom vote weights

* Formatting

* Update frame/ranked-collective/src/lib.rs

* Broken :(

* origin guard; cleanup uses new API

* Formatting

* Promote/demote by rank

* Formatting

* Use new API

* Remove code in another PR

* Remove code in another PR

* Formatting

* Remove code in another PR

* Docs

* Docs

* Bump

* Fixes

* Formatting

* Fixes
2022-06-01 10:23:47 +01:00

23 lines
1.4 KiB
Markdown

# Ranked collective system.
This is a membership pallet providing a `Tally` implementation ready for use with polling
systems such as the Referenda pallet. Members each have a rank, with zero being the lowest.
There is no complexity limitation on either the number of members at a rank or the number of
ranks in the system thus allowing potentially public membership. A member of at least a given
rank can be selected at random in O(1) time, allowing for various games to constructed using
this as a primitive. Members may only be promoted and demoted by one rank at a time, however
all operations (save one) are O(1) in complexity. The only operation which is not O(1) is the
`remove_member` since they must be removed from all ranks from the present down to zero.
Different ranks have different voting power, and are able to vote in different polls. In general
rank privileges are cumulative. Higher ranks are able to vote in any polls open to lower ranks.
Similarly, higher ranks always have at least as much voting power in any given poll as lower
ranks.
Two `Config` trait items control these "rank privileges": `MinRankOfClass` and `VoteWeight`.
The first controls which ranks are allowed to vote on a particular class of poll. The second
controls the weight of a vote given the voters rank compared to the minimum rank of the poll.
An origin control, `EnsureRank`, ensures that the origin is a member of the collective of at
least a particular rank.