-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The Ambassador Program #84
The Ambassador Program #84
Conversation
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
@@ -186,6 +186,9 @@ match_types! { | |||
pub type FellowshipSalaryPallet: impl Contains<MultiLocation> = { | |||
MultiLocation { parents: 1, interior: X2(Parachain(1001), PalletInstance(64)) } | |||
}; | |||
pub type AmbassadorSalaryPallet: impl Contains<MultiLocation> = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had a test for this, but for now there is no crate to place it, it is work in process.
test: https://github.com/paritytech/polkadot-sdk/blob/43fceb5f4eda92d34ee35ceb0b2addb382704f75/cumulus/parachains/integration-tests/emulated/collectives/collectives-polkadot/src/tests/ambassador.rs#L25
from this PR: paritytech/polkadot-sdk#1308
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would do Geometric voting and reduce the Fellowship's rights within Ambassador Program, but not blocking for me if others disagree.
system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs
Show resolved
Hide resolved
system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs
Outdated
Show resolved
Hide resolved
system-parachains/collectives/collectives-polkadot/src/ambassador/mod.rs
Show resolved
Hide resolved
system-parachains/collectives/collectives-polkadot/src/ambassador/origins.rs
Outdated
Show resolved
Hide resolved
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Please do not merge. I am going to propose root referendum requesting to dismantle ambassador program. I estimate to launch the referendum in 2 weeks |
All new collectives will go through RFC-12, and this will not be merged until that happens. |
https://x.com/giottodf/status/1755495579126227383?s=20 It seems we have consensus on the fact that the collective should work in the following way: Voters should be able to individually appoint / revoke head ambassadors Head Ambassadors should be able to appoint / revoke senior Ambassadors and Ambassadors with simple majority There should be a minimum quorum of head ambassadors before they can start to appoint ambassadors, maybe this number could be 5? (So 3 out of 5 required) Do we need to initiate root referendum in order to create this collective? Because it seems that the previous collective was being prepared without root referendum |
What you are describing is almost exactly how this works. |
closing in favour of #291 |
base paritytech/polkadot-sdk#1308
this PR includes upgrade to v1.2 from PR #56, and can be rebased when it's merge into master.
The Ambassador Program on Polkadot Collectives Parachain
The Polkadot Ambassador Program has existed for a while; more information can be found here.
In this PR, the program is being brought on chain.
On Chain Structure
The on-chain program consists of nine ranks, divided into four categories (full list):
Each rank has a corresponding
Origin
(e.g.,HeadAmbassadorsTier5
- full list), which represents the collective voice of members of that rank and above.Referendum
The
AmbassadorReferenda
instance of referenda pallet consists of nine tracks, each corresponding to anOrigin
. A referendum taken onsenior ambassador tier 4
track invites all members from rank 4 or above to vote and commandsSeniorAmbassadors
Origin
. Every member gets one vote plus an additional vote for every excess rank. The referendum proposal can be submitted by any member of a senior rank or above.Membership Management
Initial members will be brought on chain via migration, with subsequent member management handled through the
AmbassadorCollective
instance of ranked collective pallet. BothRoot
andFellowshipAdmin
Origins
, commanded via public Polkadot referendum, can promote or demote members to and from any rank. Members themselves also have the power to promote or demote via its referendum, with a senior member vote by the rank two above the new / current rank - full configuration.Content Management
The program's on-chain content is managed via the collectives content pallet, allowing for setting its charter and making announcements. The voice of head ambassadors have the authority to set the charter, while announcements can be made by any senior rank member or through a referendum among all members.
Additional Functionality
The
AmbassadorCore
instance of core fellowship pallet decorates the ranked collectives pallet with features like salary determination, activity/passivity registration, and the handling of promotion and demotion periods. While the usage of this pallet is optional in the first version, future updates will make it the exclusive method for induction/promotion.Periodic salaries in USDt, payable on Asset Hub, are introduced through the salary pallet. This requires induction into the ambassador core pallet.
Please for more information on the pallets' functionality refer to their documentations.
Next Steps: