|
| 1 | +# RFC-0012: Process for Adding New System Collectives |
| 2 | + |
| 3 | +| | | |
| 4 | +| --------------- | ----------------------------------------------------------------------------- | |
| 5 | +| **Start Date** | 24 July 2023 | |
| 6 | +| **Description** | A process for adding new (and removing existing) system collectives. | |
| 7 | +| **Authors** | Joe Petrowski | |
| 8 | + |
| 9 | +## Summary |
| 10 | + |
| 11 | +Since the introduction of the Collectives parachain, many groups have expressed interest in forming |
| 12 | +new -- or migrating existing groups into -- on-chain collectives. While adding a new collective is |
| 13 | +relatively simple from a technical standpoint, the Fellowship will need to merge new pallets into |
| 14 | +the Collectives parachain for each new collective. This RFC proposes a means for the network to |
| 15 | +ratify a new collective, thus instructing the Fellowship to instate it in the runtime. |
| 16 | + |
| 17 | +## Motivation |
| 18 | + |
| 19 | +Many groups have expressed interest in representing collectives on-chain. Some of these include: |
| 20 | + |
| 21 | +- Parachain technical fellowship (new) |
| 22 | +- Fellowship(s) for media, education, and evangelism (new) |
| 23 | +- Polkadot Ambassador Program (existing) |
| 24 | +- Anti-Scam Team (existing) |
| 25 | + |
| 26 | +Collectives that form part of the core Polkadot protocol should have a mandate to serve the |
| 27 | +Polkadot network. However, as part of the Polkadot protocol, the Fellowship, in its capacity of |
| 28 | +maintaining system runtimes, will need to include modules and configurations for each collective. |
| 29 | + |
| 30 | +Once a group has developed a value proposition for the Polkadot network, it should have a clear |
| 31 | +path to having its collective accepted on-chain as part of the protocol. Acceptance should direct |
| 32 | +the Fellowship to include the new collective with a given initial configuration into the runtime. |
| 33 | +However, the network, not the Fellowship, should ultimately decide which collectives are in the |
| 34 | +interest of the network. |
| 35 | + |
| 36 | +## Stakeholders |
| 37 | + |
| 38 | +- Polkadot stakeholders who would like to organize on-chain. |
| 39 | +- Technical Fellowship, in its role of maintaining system runtimes. |
| 40 | + |
| 41 | +## Explanation |
| 42 | + |
| 43 | +The group that wishes to operate an on-chain collective should publish the following information: |
| 44 | + |
| 45 | +- Charter, including the collective's mandate and how it benefits Polkadot. This would be similar |
| 46 | + to the |
| 47 | + [Fellowship Manifesto](https://github.com/polkadot-fellows/manifesto/blob/0c3df46/manifesto.pdf). |
| 48 | +- Seeding recommendation. |
| 49 | +- Member types, i.e. should members be individuals or organizations. |
| 50 | +- Member management strategy, i.e. how do members join and get promoted, if applicable. |
| 51 | +- How much, if at all, members should get paid in salary. |
| 52 | +- Any special origins this Collective should have outside its self. For example, the Fellowship |
| 53 | + can whitelist calls for referenda via the `WhitelistOrigin`. |
| 54 | + |
| 55 | +This information could all be in a single document or, for example, a GitHub repository. |
| 56 | + |
| 57 | +After publication, members should seek feedback from the community and Technical Fellowship, and |
| 58 | +make any revisions needed. When the collective believes the proposal is ready, they should bring a |
| 59 | +remark with the text `APPROVE_COLLECTIVE("{collective name}, {commitment}")` to a Root origin |
| 60 | +referendum. The proposer should provide instructions for generating `commitment`. The passing of |
| 61 | +this referendum would be unequivocal direction to the Fellowship that this collective should be |
| 62 | +part of the Polkadot runtime. |
| 63 | + |
| 64 | +Note: There is no need for a `REJECT` referendum. Proposals that have not been approved are simply |
| 65 | +not included in the runtime. |
| 66 | + |
| 67 | +### Removing Collectives |
| 68 | + |
| 69 | +If someone believes that an existing collective is not acting in the interest of the network or in |
| 70 | +accordance with its charter, they should likewise have a means to instruct the Fellowship to |
| 71 | +_remove_ that collective from Polkadot. |
| 72 | + |
| 73 | +An on-chain remark from the Root origin with the text |
| 74 | +`REMOVE_COLLECTIVE("{collective name}, {para ID}, [{pallet indices}]")` would instruct the |
| 75 | +Fellowship to remove the collective via the listed pallet indices on `paraId`. Should someone want |
| 76 | +to construct such a remark, they should have a reasonable expectation that a member of the |
| 77 | +Fellowship would help them identify the pallet indices associated with a given collective, whether |
| 78 | +or not the Fellowship member agrees with removal. |
| 79 | + |
| 80 | +Collective removal may also come with other governance calls, for example voiding any scheduled |
| 81 | +Treasury spends that would fund the given collective. |
| 82 | + |
| 83 | +## Drawbacks |
| 84 | + |
| 85 | +Passing a Root origin referendum is slow. However, given the network's investment (in terms of code |
| 86 | +maintenance and salaries) in a new collective, this is an appropriate step. |
| 87 | + |
| 88 | +## Testing, Security, and Privacy |
| 89 | + |
| 90 | +No impacts. |
| 91 | + |
| 92 | +## Performance, Ergonomics, and Compatibility |
| 93 | + |
| 94 | +Generally all new collectives will be in the Collectives parachain. Thus, performance impacts |
| 95 | +should strictly be limited to this parachain and not affect others. As the majority of logic for |
| 96 | +collectives is generalized and reusable, we expect most collectives to be instances of similar |
| 97 | +subsets of modules. That is, new collectives should generally be compatible with UIs and other |
| 98 | +services that provide collective-related functionality, with little modifications to support new |
| 99 | +ones. |
| 100 | + |
| 101 | +## Prior Art and References |
| 102 | + |
| 103 | +The launch of the Technical Fellowship, see the |
| 104 | +[initial forum post](https://forum.polkadot.network/t/calling-polkadot-core-developers/506). |
| 105 | + |
| 106 | +## Unresolved Questions |
| 107 | + |
| 108 | +None at this time. |
0 commit comments