Skip to content

如何在OpenGov (Governance v2)发起提案

概览

提案是指Token持有者在链上提出建议并由系统生效。提案是治理系统的核心要素之一,因为这是参与者能够提出建议/更改的主要工具,随后参与者可以对其进行投票。

在Moonbeam,用户可以使用其H160地址和私钥(也就是以太坊账户)来创建提案、附议提案和投票提案。

本教程将分步概述如何在OpenGov (Governance v2)提交提案以便Token持有者投票。此教程将展示如何在Moonbase Alpha上提交提案,这也同样适用于Moonbeam或Moonriver。关于如何在OpenGov对提案进行投票有单独的教程。

关于Moonbeam治理系统的更多信息,请参考治理概览页面

定义

本教程中重要参数定义如下:

  • 提案 — 原像哈希定义的行动或项目,由Token持有者提议并开放供其他Token持有者讨论
  • 公投 — 由Token持有者投票的提案。每次公投均与更改Moonbeam系统的特定提案相关,包括关键参数值、代码升级或治理系统本身的修改

  • 原像哈希 — 要颁布提案的哈希。提出提案的第一步是提交原像。哈希只是一个标识符。原像的提议者可以不同于将原像作为正式提案提出的用户

  • 原像保证金 — 提交原像时提议者需要绑定的一笔Token数量。该金额计算为每个网络的基本保证金加上提议的原像的每字节费用

  • 提交保证金 — 提交公投提案所需的最低保证金

  • 带入期 — 最初的提案投票和讨论期。在此阶段,提案处于未定状态直至其通过指定Track的某些标准,包括:

    • 准备期 — 公投提交后进入一下阶段前需要等待的最短时间
    • 容量 — 指定Track上一次可以决定的公投数量的限制
    • 决定保证金 — 在带入期结束后公投进入决定期所需的最低保证金金额。由于每个Track有一个固定的容量,此保证金要高于提交的保证金,其目的是防止不良提案的提交

    Track会有不同的标准参数,这些参数与Origin级别成正比。举例而言,更重要和特权的公投将有更多的保障、更高的门槛和更长的批准审议期。

请确保您查看每个网络和track的治理参数

提案步骤

本教程将涵盖提案步骤图的前几个步骤,如下图突出显示的步骤所示。您将学习如何提交提案想法至Moonbeam社区论坛、提交原像以及使用原像哈希在链上提交提案。

您可以在治理概览页面的OpenGov提案步骤部分找到详细的解释。

Proposal Roadmap

提交您的想法至论坛

在开始操作提交提案的步骤之前,您需要先熟悉Moonbeam社区论坛平台。强烈建议您先在论坛上发布任何提案相关的帖子以接收社区反馈。在继续提交原像和提案之前,您需要预留5天时间供社区讨论并在Moonbeam社区论坛帖子上提供反馈。

要访问Moonbeam社区论坛,您必须是Moonbeam Discord的社区成员之一。然后,您可以使用您的Discord注册以访问论坛。

登陆后,您可以查看最新讨论、加入对话,并为您拥有的提案想法创建自己的讨论。在首次发布帖子或发表评论前,请确保您已熟悉常见问答并了解社区准则。

Moonbeam Forum Home

如果您已准备好发布提案详情的帖子,您可以前往Governance页面并点击Democracy Proposals

Governance page on Moonbeam Forum

然后点击Open Draft,使用提供的模板开始准备提案草案。确保更新帖子标题并添加相关标签,比如Moonbeam(如果提案与Moonbeam相关)。标题应遵循[Proposal: XX][Status: Idea]提案标题的格式。例如,[Proposal: XX][Status: Idea]注册XC-20 xcMYTOK。其中XX将在提案正式在链上提交后需要被更新为提案ID。

Add a proposal to the Moonbeam Forum

填写完提案详情后,点击Create Topic保存至论坛并打开讨论。根据收到的反馈,您可以在提交之前更新提案。

发起提案

此部分将介绍使用OpenGov (Governance v2)在Moonbase Alpha上创建提案的流程。操作步骤也同样适用于Moonbeam或Moonriver。

您需要用到Polkadot.js Apps界面发起提案。为此,您需要先导入以太坊格式账户(即H160地址),您也可以遵循创建或导入H160账户教程完成此步骤。在这个示例中,我们导入了三个账户,并分别命名为Alice、Bob和Charlie。

Accounts in Polkadot.js

您可以选择任何想要发起提案的内容,请确保将其分配给正确的Origin和Track,以便其具有执行提案的正确权限。

本教程旨在使用General Admin Origin和Track创建一个链上备注。

提交提案原像

第一步是提交提案原像。这是因为大型原像包含关于提案本身的所有信息,储存成本很高。在这一设置下,资金较多的账户可以负责提交原像,另一个账户提交提案。

前往Moonbase Alpha的Polkadot.js Apps界面,所有治理相关操作均在Governance标签下,包括原像。在Governance下拉菜单中选择Preimages,然后点击Add preimage按钮。

Add preimage in Polkadot.js

此处,您需要提供以下信息:

  1. 选择提交原像的账户
  2. 选择希望交互的pallet以及可调用的函数(或请求)进行提案。所选请求将决定接下来的步骤中要填写的内容。在本示例中为system pallet和remark extrinsic
  3. 输入要调度的extrinsic所需的任何其他字段。以本例来说,您可以以十六进制或ascii格式输入备注
  4. 复制原像哈希。这个数值代表着提案,在提交正式提案时会用到
  5. 点击Submit preimage按钮并签署交易

Fill in the Preimage Information

注意事项

请确保复制原像哈希,在提交提案时必须用到这一数据。

请注意,原像储存成本可以计算为(每个网络的)基本费用加上所提议的原像的每字节费用。

交易提交后,您将在Polkadot.js Apps界面的右上角看到一些确认信息,原像将被添加到preimages列表当中。

提交提案

提交原像(查看上一部分)后,下一步就是提交与这一原像相关的提案。为此,需要在Governance下拉菜单中选择Referenda,并点击Submit proposal

要提交提案,您将需要选择您希望提案执行的Origin级别。选择错误的Track/Origin会导致提案执行失败。有关每个Origin类的更多信息,请参阅Moonbeam治理概览页面上的一般定义部分。

Submit proposal

此处,您需要提供以下信息:

  1. 选择提交提案的账户(在本示例中为Alice)
  2. 选择要提交提案的Track。与Track关联的Origin需要有足够的权限来执行建议的操作。在此示例中,要添加链上备注,您可以从 submission track 下拉选单中选择 2 / General Admin
  3. origin下拉菜单选择Origins
  4. Origins下拉菜单选择Origin,在本示例中为GeneralAdmin
  5. 输入与提案相关的原像。在本示例中为上一部分操作得到的system.remark原像哈希
  6. 选择生效的时间点,或在一定数量区块后,或在某一特定区块,但条件是必须满足最短生效等待期,具体要求请参考OpenGov的治理参数
  7. 输入生效提案的区块数量或特定区块
  8. 点击Submit proposal并签署交易

Fill in the Proposal Information

注意事项

由于提案进入公投阶段所需时间不可预测(也有可能无法进入公投阶段),因此Token可能无限期锁定。

交易提交后,您将在Polkadot.js Apps界面的右上角看到一些确认信息。您也将看到提案出现在关联的Origin部分的列表中,显示已发起的提案、提议者以及更多信息。

如果您用创建提案的同一个账户登陆Polkassembly,您将能够编辑提案描述,添加在Moonbeam社区论坛提案讨论的链接。该步骤必不可少,虽然Polkassembly会为每个提案自动生成一个帖子,但它不会提供有关提案的详细信息。

提案目前处于带入期并可以准备开始投票。为了使您的提案从带入期进入下一阶段,至少需要经过准备期,以便有足够的时间讨论提案,还需要确保选择的Track有足够的提案容量,并且需要提交决定保证金。保证金可以由任何Token持有者支付。如果没有足够的容量或没有提交决定保证金,准备期过了之后,提案将保留在带入期,直到满足所有标准。

要了解如何对提案进行投票,请参考如何在OpenGov对提案进行投票教程。

Last update: January 25, 2024
| Created: March 16, 2023