Skip to content

Commit

Permalink
Update Fellowship Membership instructions (#5499)
Browse files Browse the repository at this point in the history
* Update Fellowship Membership instructions

* Refine Fellowship content

* Refine content

* Induct fellowship member

* Improve whitelisting section

* Add promotion info

* minor update
  • Loading branch information
DrW3RK authored Jan 25, 2024
1 parent ca41603 commit c08aa2c
Show file tree
Hide file tree
Showing 10 changed files with 186 additions and 127 deletions.
Binary file removed docs/assets/fellowship-add-member-preimage.png
Binary file not shown.
Binary file removed docs/assets/fellowship-add-member-proposal.png
Binary file not shown.
Binary file added docs/assets/fellowship-candidate-proposal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/fellowship-induct-candidate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/fellowship-promote-member.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/fellowship-promotion-proposal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/fellowship-whitelist-xcm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
127 changes: 0 additions & 127 deletions docs/learn/learn-polkadot-opengov.md
Original file line number Diff line number Diff line change
Expand Up @@ -583,133 +583,6 @@ For a step-by-step outline of how to delegate voting power in Polkadot OpenGov,
[Delegating Voting Power](./learn-guides-polkadot-opengov.md#delegations) section on the
[Polkadot OpenGov Guides](./learn-guides-polkadot-opengov.md).

## The Polkadot Technical Fellowship

:::info From Technical Committee to the Technical Fellowship

The Polkadot Technical Fellowship is a collection of Substrate experts. This fellowship was
established in 2022. In Polkadot OpenGov, this fellowship replaces the
[Technical Committee](./learn-governance.md#technical-committee) in Governance v1, and will serve
both the Polkadot and Kusama networks.

For more information about the Fellowship see the
[Fellowship Manifesto](https://github.com/polkadot-fellows/manifesto/blob/0c3df46d76625980b8b48742cb86f4d8fa6dda8d/manifesto.pdf).

:::

The Technical Fellowship is a mostly self-governing expert body with a primary goal of representing
humans who embody and contain the technical knowledge base of the Kusama and/or Polkadot networks
and protocols. This is accomplished by associating a rank with members to categorize the degree to
which the system expects their opinion to be well-informed, of a sound technical basis, and in line
with the interests of Polkadot and/or Kusama.

Unlike the Technical Committee in Governance V1, the Fellowship is designed to be far broader in
membership (i.e. to work well with even tens of thousands of members) and with far lower barriers to
entry (both in terms of administrative process flow and expectations of expertise).

The mechanism by which the Fellowship votes is the same as what is used for Polkadot and Kusama
stakeholder voting for a proposed referendum. Members of the Fellowship can vote on any given
Fellowship proposal and the aggregated opinion of the members (weighted by their rank) constitutes
the Fellowship's considered opinion.

The Polkadot Technical Fellowship resides on the
[Collectives](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/fellowship/referenda)
parachain and maintains the [Polkadot Fellows](https://github.com/polkadot-fellows) repository. The
fellowship also has its own governance model with multiple tracks with approval and support
parameters, where the votes are weighted by the rank of the member.
The fellowship governance is primarily used for its membership management,
[approving RFCs](https://github.com/polkadot-fellows/RFCs) and whitelisting Polkadot OpenGov
proposals.

{{ kusama: <Fellowship network="kusama" defaultValue="Loading Kusama Fellows..."/> :kusama }}

### Ranking System

To prevent a small group of participants from gaining effective control over the network, this
system will adhere to three main principles:

- The Fellowship must never have hard power over the network: it cannot change the parameters,
conduct rescues or move assets. Their only power in governance is reducing the effective timeline
on which a referendum takes place through [whitelisting](#whitelisting).
- The Fellowship weights those with a higher rank more in the aggregate opinion. However, the weight
should not be so high as to make a small number of higher members’ opinions be insurmountable
compared to a coherent opinion from lower-ranked membership.
- The Fellowship should be designed to grow and develop its membership, aggregate levels of
expertise and ensure that its overall decision-making capacity strengthens over time.

To support these conditions, the Fellowship has a
[manifesto](https://github.com/polkadot-fellows/manifesto) that outlines the requirements and
expectations for individuals to attain and retain any given rank. Higher ranks can vote and promote
lower ranks based on this [manifesto](https://github.com/polkadot-fellows/manifesto).

**Demotion** occurs automatically after a given period has elapsed, and the member is unable to
defend their position to their peers.

**Suspension** can happen only through a referendum, which ensures that the Fellowship's bias alone
does not necessarily result in expulsion.

To prevent the Fellowship from becoming a cabal (popularity with Fellowship peers alone should not
be enough to gain access to a top rank), gaining access to the top tiers of the ranks will require a
referendum.

### Whitelisting

Polkadot OpenGov allows the Fellowship to authorize a new origin (known as "Whitelisted-Caller") to
execute with Root-level privileges for calls that have been approved by the Fellowship (currently
only level-three fellows and above can vote for whitelist calls).

The [Whitelist](https://paritytech.github.io/substrate/master/pallet_whitelist/) pallet allows one
Origin to escalate the privilege level of another Origin for a certain operation. The pallet
verifies two things:

- The origin of the escalation is the Whitelisted-Root (i.e. that the referendum passed on this
track), and
- The whitelist contains the given proposal (in the configuration of Polkadot OpenGov, it gets there
via a separate Fellowship referendum).

If both conditions are true, the operation executes with Root-level privileges.

This system enables a new parallel Track (Whitelisted-Caller), whose parameters have less
restrictive passing parameters than Root in the short term. Through an open and transparent process,
a body of global experts on the {{ polkadot: Polkadot :polkadot }}{{ kusama: Kusama :kusama }}
protocol have determined that the action is both safe and time-critical.

:::info Submitting Whitelisted Proposals

For more information about how to submit a whitelisted proposal see the
[dedicated advanced how-to guides](./learn-guides-polkadot-opengov.md#submitting-a-referendum-on-the-whitelisted-caller-track).

:::

### Becoming a Polkadot Technical Fellowship Member

Currently, the only way to become a fellowship member is through a referenda. To get added as a
member of "Rank 1", an existing member of the fellowship needs to submit a referendum with the
preimage of a batch call that has `fellowshipCollective.addMember` and
`fellowshipCollective.promoteMember` on "2/Proficients" track. On Polkadot-JS UI for Polkadot
Collectives, navigate to Governance > Fellowship > Referenda and click on "Add Preimage". This
preimage can be submitted by anyone.

![fellowship-add-promote-member-preimage](../assets/fellowship-add-member-preimage.png)

After the preimage is successfully noted, navigate to Governance > Fellowship > Referenda and click
on "Submit Proposal" (This button is active on the UI only if you have an account that belongs to
the Fellowship). Choose the appropriate track and the origin, and enter the preimage hash of the
batch call that adds and promotes the member.

![fellowship-add-promote-member-proposal](../assets/fellowship-add-member-proposal.png)

After the referendum is successfully executed, the member is added to the fellowship with "rank 1".
For example, check the [Referenda 23](https://collectives.subsquare.io/fellowship/referenda/23) on
the Collectives parachain. If a member has to be added and promoted to “rank 5”, the proposal has to
be submitted through track “6/Senior Experts” (Always a track with a rank higher). For example,
check the [Referenda 25](https://collectives.subsquare.io/fellowship/referenda/25) on the
Collectives parachain.

Future plans include that public members can apply to become a Fellowship candidate by placing a
small deposit (which will be returned once they become members). Their candidacy will go through a
referendum to be approved to become a member.

## Resources

- [Democracy Pallet](https://github.com/paritytech/substrate/tree/master/frame/democracy/src)
Expand Down
185 changes: 185 additions & 0 deletions docs/learn/learn-polkadot-technical-fellowship.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
---
id: learn-polkadot-technical-fellowship
title: Polkadot Technical Fellowship
sidebar_label: Technical Fellowship
description: Self-governing body of experts and developers of the Polkadot protocol.
keywords: [governance, referenda, proposal, voting, whitelist, fellowship, opengov, rank]
slug: ../learn-polkadot-technical-fellowship
---

import RPC from "./../../components/RPC-Connection";

The Technical Fellowship is a self-governing body of experts and developers of Polkadot and Kusama
networks protocols. It operates on-chain through the Polkadot
[Collectives](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot-collectives-rpc.polkadot.io#/fellowship/referenda)
system chain and off-chain through the [Polkadot Fellows](https://github.com/polkadot-fellows)
repository.

:::info Historical Context

The Polkadot Technical Fellowship was established in 2022 and plays an important role in the
Polkadot OpenGov. This fellowship replaced the
[Technical Committee](./learn-governance.md#technical-committee) from Polkadot's first iteration of
governance, and will be serving both the Polkadot and Kusama networks. This Fellowship is designed
to be far broader in membership (i.e. to work well with even tens of thousands of members) and with
far lower barriers to entry both in terms of administrative process flow and levels of expertise.
For more information, read through the
[Fellowship Manifesto](https://github.com/polkadot-fellows/manifesto/blob/0c3df46d76625980b8b48742cb86f4d8fa6dda8d/manifesto.pdf).

:::

Apart from the collectives system chain and the GitHub repository, the Polkadot Technical Fellowship
also uses multiple public avenues to discuss updates related to the Polkadot protocol. Their public
discussions can be viewed on [this chatroom](https://matrix.to/#/#fellowship-members:parity.io) and
their monthly meetings are posted to this OpenDev - Polkadot Fellowship Core Dev Call
[YouTube playlist.](https://www.youtube.com/watch?v=5P6Axm4JrmQ&list=PLtyd7v_I7PGlDJCCCLGLjJ0yv33JAEE_-)

## Technical Fellowship Referenda

The fellowship's governance model has multiple tracks with their own approval and support
parameters, where the votes are weighted by the rank of the member. Members of the Fellowship can
vote on any given Fellowship proposal and the aggregated opinion of the members (weighted by their
rank) constitutes the Fellowship's collective opinion. The list of current and historic fellowship
referenda can be viewed on [Polkassembly](https://collectives.polkassembly.io/) or
[Subsquare.](https://collectives.subsquare.io/) The fellowship governance is primarily used for its
membership management, [approving RFCs](https://github.com/polkadot-fellows/RFCs) and whitelisting
Polkadot OpenGov proposals created on the whitelist track.

### Whitelisting

Polkadot OpenGov allows the Technical Fellowship to authorize an origin known as
"Whitelisted-Caller" to execute with Root-level privileges for calls approved by the Fellowship
(currently only level-three fellows and above can vote for whitelist calls). Note that the
fellowship cannot unanimously change the network parameters, conduct rescues or move assets. The
whitelisted proposals still have to go through the whole life cycle of an OpenGov referendum and can
only be enacted when the referendum passes successfully.

The whitelisting process starts as a fellowship referenda with embedded XCM call from the
collectives system chain to the Polkadot relay chain. For instance,
[the Polkadot Fellowship referenda 68](https://collectives.polkassembly.io/referenda/68) was used to
**whitelist** [the Polkadot OpenGov referenda 440](https://polkadot.polkassembly.io/referenda/440).

![whitelist-xcm](../assets/fellowship-whitelist-xcm.png)

:::info Submitting Whitelisted Proposals

For more information about how to submit a whitelisted proposal see the
[dedicated advanced how-to guides](./learn-guides-polkadot-opengov.md#submitting-a-referendum-on-the-whitelisted-caller-track).

:::

## Technical Fellowship Ranking and Salary

The Fellowship [manifesto](https://github.com/polkadot-fellows/manifesto) outlines the requirements
and expectations for individuals to attain and retain any given rank, ranging between 0 to 9. By
default, an active account on the collectives system chain has no assigned rank and can be inducted
into the Polkadot Technical Fellowship starting with rank 0. The Fellowship Manifesto states that
members should receive a monthly allowance on par with gross income in OECD countries. A
[fellowship RFC](https://github.com/polkadot-fellows/RFCs/pull/50) was proposed with concrete
amounts for each ranked members.

| Dan | Title | Annual Salary |
| :--: | :-------------: | :-----------: |
| I | Member | $10,000 |
| II | Proficient | $20,000 |
| III | Fellow | $80,000 |
| IV | Architect | $120,000 |
| V | Architect Adept | $160,000 |
| VI | Grand Architect | $200,000 |
| VII | Free Master | $200,000 |
| VIII | Master Constant | $200,000 |
| IX | Grand Master | $200,000 |

## Membership Management

The Polkadot technical Fellowship was initally [seeded](https://github.com/polkadot-fellows/seeding)
with its members and their corresponding ranks, and got
[added on to Polkadot's Collectives](https://polkadot.polkassembly.io/motion/403) system chain. All
new membership requests will go through the fellowship governance and the procedure is outlined in
the section below.

### Becoming a Member

As a member of the Polkadot Technical Fellowship, you are expected to faithfully uphold the below
tenets:

- Sincerely uphold the interests of Polkadot and avoid actions which clearly work against it.
- Respect the philosophy and principles of Polkadot.
- Respect the operational procedures, norms and voting conventions of the Fellowship.
- Respect fellow Members and the wider community.

:::tip Register your interest

For new fellowship inductions, Polkassembly has created an interface (still in beta) to
[apply for the Polkadot Technical Fellowship.](https://collectives.polkassembly.io/join-fellowship?network=collectives)
This initiative is funded by Polkadot treasury through
[OpenGov referendum 373](https://polkadot.polkassembly.io/treasury/574)

:::

:::info

The fellowship manifesto states that any account may register to become a candidate for a basic
deposit, but that feature has not been added to the collectives runtime yet.

:::

To be added as a candidate of the Polkadot Technical Fellowship, a pre-existing member with rank
greater than or equal to 1 can initiate the process. The fellowship membership management is
administered through the
[core fellowship](https://github.com/paritytech/polkadot-sdk/blob/master/substrate/frame/core-fellowship/src/lib.rs)
pallet.

Before starting the candidate induction process, please ensure the candidate account is active and
has a balance greater than the existential deposit of the collectives system chain (0.1 DOT). It is
recommended that the candidate account also has a verified identity.

The first step is to add a preimage on the collectives system chain. This preimage should include
the call to `induct` a candidate account, as shown below. The preimage can be added by any account
on the collectives system chain. The preimage hash of this call will later be used for creating a
fellowship referenda with an approriate origin and track.

![candidate-induct](../assets/fellowship-induct-candidate.png)

The next step is to create a fellowship referenda, which can only be done by a pre-existing
Technical Fellowship member. When a fellowship member navigates to Governance > Fellowship >
Referenda, they should be able to see a submit proposal button. In the example below,submission
track is chosen as `1/members`, origin as `FellowshipOrigins` and fellowship origins as `Members`.
This selection should work for inducting an account without any rank to the fellowship as a
candidate with rank 0. After copying the preimage hash in the designated field, the preimage length
will automatically be populated.

![candidate-induct-proposal](../assets/fellowship-candidate-proposal.png)

After submitting the proposal, the voting can commence. A decision deposit needs to be placed for
this fellowship referendum to be decided. After the fellowship referenda successfully passes, the
candidate is successfully inducted into the Polkadot Fellowship with rank 0.

### Promotion and Demotion

Any fellowship member upto rank 4 can be promoted to the next rank through a fellowship referenda
that can be voted by the members who are 2 ranks higher. For instance, the fellowship
[referenda 64](https://collectives.subsquare.io/fellowship/referenda/64) which promotes a member
from rank 1 to rank 2 can only be voted by members whose ranks are greater than or equal to 3.
Promotion of the Polkadot Fellowship members from rank 5 needs to be done through an OpenGov
referendum.

This preimage example should include the call to `promote` an account to a specific rank, as shown
below. This preimage can be added by any account on the collectives system chain.

![candidate-promote](../assets/fellowship-promote-member.png)

In the snapshot below, the submission track is chosen as `2/Proficient members`, origin as
`FellowshipOrigins` and fellowship origins as `Fellowship2Dan`. This selection should work for
promoting a candidate with rank 0 to a member with rank 1.

![candidate-promote-proposal](../assets/fellowship-promotion-proposal.png)

To retain a rank, the Polkadot Fellowship members are expected to submit evidence of work in an
on-going basis.

**Demotion** occurs automatically after a given period has elapsed, and the member is unable to
defend their position to their peers.

**Suspension** can happen only through a Polkadot OpenGov referendum, which ensures that the
Fellowship's bias alone does not necessarily result in expulsion.
1 change: 1 addition & 0 deletions polkadot-wiki/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ module.exports = {
items: [
"learn/learn-polkadot-opengov",
"learn/learn-polkadot-opengov-origins",
"learn/learn-polkadot-technical-fellowship"
],
},
"learn/learn-polkadot-opengov-treasury",
Expand Down

0 comments on commit c08aa2c

Please sign in to comment.