Files
pezkuwi-subxt/substrate/frame/alliance/README.md
T
Muharem Ismailov d8e951758c Alliance pallet: add force_set_members instead of init_members function (#11997)
* Alliance pallet: add force_set_members instead of init_members function

* benchmark with witness data

* remove invalid limit for clear

* Apply suggestions from code review

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* Revert "remove invalid limit for clear"

This reverts commit dba54e3071b63bfea908087aef213f4640e3ccbf.

* compile constructor only for test

* Update comments for force_set_members

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* ".git/.scripts/bench-bot.sh" pallet dev pallet_alliance

* benchmark - founders count range

* Revert "benchmark - founders count range"

This reverts commit aad16796f8dfed48079fb7f587b8f5b59382cda6.

* witness members count instead votable members count

* update the doc

* use decode_len for witness data checks

* change witness data member count to voting member count; update clear limits

* ".git/.scripts/bench-bot.sh" pallet dev pallet_alliance

* merge master

* fixes after merge master

* revert to cb3e63

* disband alliance and return deposits

* revert debug changes

* weights

* update docs

* update test comments

* Apply Joe suggestions from code review

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* rename event from AllianceDisband to AllianceDisbanded

* ".git/.scripts/bench-bot.sh" pallet dev pallet_alliance

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: command-bot <>
2022-09-01 10:31:32 +00:00

2.9 KiB

Alliance Pallet

The Alliance Pallet provides a collective that curates a list of accounts and URLs, deemed by the voting members to be unscrupulous actors. The alliance

  • provides a set of ethics against bad behavior, and
  • provides recognition and influence for those teams that contribute something back to the ecosystem.

Overview

The network initializes the Alliance via a Root call. After that, anyone with an approved identity and website can join as an Ally. The MembershipManager origin can elevate Allies to Fellows, giving them voting rights within the Alliance.

Voting members of the Alliance maintain a list of accounts and websites. Members can also vote to update the Alliance's rule and make announcements.

Terminology

  • Rule: The IPFS CID (hash) of the Alliance rules for the community to read and the Alliance members to enforce. Similar to a Code of Conduct.
  • Announcement: An IPFS CID of some content that the Alliance want to announce.
  • Member: An account that is already in the group of the Alliance, including three types: Founder, Fellow, or Ally. A member can also be kicked by the MembershipManager origin or retire by itself.
  • Founder: An account who is initiated by Root with normal voting rights for basic motions and special veto rights for rule change and Ally elevation motions.
  • Fellow: An account who is elevated from Ally by Founders and other Fellows.
  • Ally: An account who would like to join the alliance. To become a voting member, Fellow or Founder, it will need approval from the MembershipManager origin. Any account can join as an Ally either by placing a deposit or by nomination from a voting member.
  • Unscrupulous List: A list of bad websites and addresses, items can be added or removed by Founders and Fellows.

Interface

Dispatchable Functions

For General Users

  • join_alliance - Join the Alliance as an Ally. This requires a slashable deposit.

For Members (All)

  • give_retirement_notice - Give a retirement notice and start a retirement period required to pass in order to retire.
  • retire - Retire from the Alliance and release the caller's deposit.

For Members (Founders/Fellows)

  • propose - Propose a motion.
  • vote - Vote on a motion.
  • close - Close a motion with enough votes or that has expired.
  • set_rule - Initialize or update the Alliance's rule by IPFS CID.
  • announce - Make announcement by IPFS CID.
  • nominate_ally - Nominate a non-member to become an Ally, without deposit.
  • elevate_ally - Approve an ally to become a Fellow.
  • kick_member - Kick a member and slash its deposit.
  • add_unscrupulous_items - Add some items, either accounts or websites, to the list of unscrupulous items.
  • remove_unscrupulous_items - Remove some items from the list of unscrupulous items.

For Members (Only Founders)

  • veto - Veto on a motion about set_rule and elevate_ally.

Root Calls

  • force_set_members - Set the members via chain governance.