如何在OpenGov (Governance v2)发起提案¶
概览¶
提案是指Token持有者在链上提出建议并由系统生效。提案是治理系统的核心要素之一,因为这是参与者能够提出建议/更改的主要工具,随后参与者可以对其进行投票。
在Moonbeam,用户可以使用其H160地址和私钥(也就是以太坊账户)来创建提案、附议提案和投票提案。
Moonbeam的治理系统正在更新中。下一个阶段的治理称为OpenGov (Goverance v2)。在推出过程中,OpenGov将在Moonriver上经过严格测试,然后再通过提案部署至Moonbeam。在正式上线Moonbeam之前,Moonbeam将继续使用Governance v1。因此,本教程仅适用于Moonriver或Moonbase Alpha上的提案。如果想要在Moonbeam上提交提案,请参考如何在Governance v1发起提案的教程。
本教程将分步概述如何在OpenGov (Governance v2)提交提案以便Token持有者投票。此教程将展示如何在Moonbase Alpha上提交提案,这也同样适用于Moonriver。关于如何在OpenGov对提案进行投票有单独的教程。
关于Moonbeam治理系统的更多信息,包括Governance v1和OpenGov(Governance v2),请参考治理概览页面。
定义¶
本教程中重要参数定义如下:
- 提案 — 原像哈希定义的行动或项目,由Token持有者提议并开放供其他Token持有者讨论
-
公投 — 由Token持有者投票的提案。每次公投均与更改Moonbeam系统的特定提案相关,包括关键参数值、代码升级或治理系统本身的修改
-
原像哈希 — 要颁布提案的哈希。提出提案的第一步是提交原像。哈希只是一个标识符。原像的提议者可以不同于将原像作为正式提案提出的用户
-
原像保证金 — 提交原像时提议者需要绑定的一笔Token数量。该金额计算为每个网络的基本保证金加上提议的原像的每字节费用
-
提交保证金 — 提交公投提案所需的最低保证金
-
带入期 — 最初的提案投票和讨论期。在此阶段,提案处于未定状态直至其通过指定Track的某些标准,包括:
- 准备期 — 公投提交后进入一下阶段前需要等待的最短时间
- 容量 — 指定Track上一次可以决定的公投数量的限制
- 决定保证金 — 在带入期结束后公投进入决定期所需的最低保证金金额。由于每个Track有一个固定的容量,此保证金要高于提交的保证金,其目的是防止不良提案的提交
Track会有不同的标准参数,这些参数与Origin级别成正比。举例而言,更重要和特权的公投将有更多的保障、更高的门槛和更长的批准审议期。
请确保您查看每个网络和track的治理参数。
提案步骤¶
本教程将涵盖提案步骤图的前几个步骤,如下图突出显示的步骤所示。您将学习如何提交提案想法至Moonbeam社区论坛、提交原像以及使用原像哈希在链上提交提案。
您可以在治理概览页面的OpenGov (Governance v2)提案步骤部分找到详细的解释。
提交您的想法至论坛¶
在开始操作提交提案的步骤之前,您需要先熟悉Moonbeam社区论坛平台。强烈建议您先在论坛上发布任何提案相关的帖子以接收社区反馈。在继续提交原像和提案之前,您需要预留5天时间供社区讨论并在Moonbeam社区论坛帖子上提供反馈。
要访问Moonbeam社区论坛,您必须是Moonbeam Discord的社区成员之一。然后,您可以使用您的Discord注册以访问论坛。
登陆后,您可以查看最新讨论、加入对话,并为您拥有的提案想法创建自己的讨论。在首次发布帖子或发表评论前,请确保您已熟悉常见问答并了解社区准则。
如果您已准备好发布提案详情的帖子,您可以前往Governance页面并点击Democracy Proposals。
然后点击Open Draft,使用提供的模板开始准备提案草案。确保更新帖子标题并添加相关标签,比如Moonbeam(如果提案与Moonbeam相关)。标题应遵循[Proposal: XX][Status: Idea]提案标题的格式。例如,[Proposal: XX][Status: Idea]注册XC-20 xcMYTOK。其中XX将在提案正式在链上提交后需要被更新为提案ID。
填写完提案详情后,点击Create Topic保存至论坛并打开讨论。根据收到的反馈,您可以在提交之前更新提案。
发起提案¶
此部分将介绍使用OpenGov (Governance v2)在Moonbase Alpha上创建提案的流程。操作步骤也同样适用于Moonriver。
您需要用到Polkadot.js Apps界面发起提案。为此,您需要先导入以太坊格式账户(即H160地址),您也可以遵循创建或导入H160账户教程完成此步骤。在这个示例中,我们导入了三个账户,并分别命名为Alice、Bob和Charlie。
您可以选择任何想要发起提案的内容,请确保将其分配给正确的Origin和Track,以便其具有执行提案的正确权限。
出于本教程的目的,提案将使用General Admin Origin和Track来注册一个新的可铸造的XC-20。
提交提案原像¶
第一步是提交提案原像。这是因为大型原像包含关于提案本身的所有信息,储存成本很高。在这一设置下,资金较多的账户可以负责提交原像,另一个账户提交提案。
前往Moonbase Alpha的Polkadot.js Apps界面,所有治理相关操作均在Governance标签下,包括原像。在Governance下拉菜单中选择Preimages,然后点击Add preimage按钮。
此处,您需要提供以下信息:
-
选择提交原像的账户
-
选择希望交互的pallet以及可调用的函数(或请求)进行提案。所选请求将决定接下来的步骤中要填写的内容。在本示例中为assetManager pallet和registerLocalAsset extrinsic
-
输入分配extrinsic所需的其他内容。在本示例中,Alice是creator,Bob是owner,isSufficient设置为No,以及minBalance设置为0
-
复制原像哈希。这个数值代表着提案,在提交正式提案时会用到
-
点击Submit preimage按钮并签署交易
注意事项
请确保复制原像哈希,在提交提案时必须用到这一数据。
请注意,原像储存成本可以计算为(每个网络的)基本费用加上所提议的原像的每字节费用。
交易提交后,您将在Polkadot.js Apps界面的右上角看到一些确认信息,原像将被添加到preimages列表当中。
提交提案¶
提交原像(查看上一部分)后,下一步就是提交与这一原像相关的提案。为此,需要在Governance下拉菜单中选择Referenda,并点击Submit proposal。
要提交提案,您将需要选择您希望提案执行的Origin级别。选择错误的Track/Origin会导致提案执行失败。关于每个Origin级别的更多信息,请参考治理概览页面的Governance v2部分。
此处,您需要提供以下信息:
-
选择提交提案的账户(在本示例中为Alice)
-
选择Track以提交提案。与Track关联的Origin需要有足够的权限来执行提案操作。在本示例中,要注册一个可铸造XC-20,您可以在submission track下拉菜单中选择2 / General Admin
-
在origin下拉菜单选择Origins
-
在Origins下拉菜单选择Origin,在本示例中为GeneralAdmin
-
输入与提案相关的原像。在本示例中为上一部分操作得到的
assetManager.registerLocalAsset
原像哈希 -
选择生效的时间点,或在一定数量区块后,或在某一特定区块,但条件是必须满足最短生效等待期,具体要求请参考OpenGov的治理参数
-
输入生效提案的区块数量或特定区块
-
点击Submit proposal并签署交易
注意事项
由于提案进入公投阶段所需时间不可预测(也有可能无法进入公投阶段),因此Token可能无限期锁定。
交易提交后,您将在Polkadot.js Apps界面的右上角看到一些确认信息。您也将看到提案出现在关联的Origin部分的列表中,显示已发起的提案、提议者以及更多信息。
如果您用创建提案的同一个账户登陆Polkassembly,您将能够编辑提案描述,添加在Moonbeam社区论坛提案讨论的链接。该步骤必不可少,虽然Polkassembly会为每个提案自动生成一个帖子,但它不会提供有关提案的详细信息。
提案目前处于带入期并可以准备开始投票。为了使您的提案从带入期进入下一阶段,至少需要经过准备期,以便有足够的时间讨论提案,还需要确保选择的Track有足够的提案容量,并且需要提交决定保证金。保证金可以由任何Token持有者支付。如果没有足够的容量或没有提交决定保证金,准备期过了之后,提案将保留在带入期,直到满足所有标准。
要了解如何对提案进行投票,请参考如何在OpenGov对提案进行投票教程。
| Created: March 16, 2023