Skip to content

Commit 1c447a6

Browse files
authored
Process for Adding New System Collectives (#12)
This RFC proposes a means for Polkadot stakeholders to ratify a new collective. The Fellowship should agree to add new collectives to the Collectives parachain runtime that pass the given process.
1 parent 7adef29 commit 1c447a6

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
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

Comments
 (0)