设置代理账户¶
概览¶
代理帐户可以代表用户执行有限数量的操作,并起到保护底层帐户的作用。这允许用户将其主账户进行安全冷存储,同时使代理能够主动执行功能并利用主账户中的Token权重参与网络。
代理账户可以执行特定Substrate功能,如author映射、质押、余额等。这允许您授权您信任的账户执行收集人或委托人的功能。代理也同样能保证质押账户在冷存储中的安全性。
本教程将引导您如何在Moonbase Alpha测试网上创建用于余额转账的代理账户以及如何执行代理交易。
查看先决条件¶
在操作本教程之前,您需要准备:
- 打开Polkadot.js Apps并已连接至Moonbase Alpha
- 在Moonbase Alpha上创建或拥有2个账户
- 至少有一个账户拥有
DEV
Token 您可以每24小时一次从Moonbase Alpha水龙头上获取DEV代币以在Moonbase Alpha上进行测试
如果您想要把您的账户导入Polkadot.js Apps,请参考使用Polkadot.js Apps与Moonbeam交互的教程。
一般定义¶
设置代理账户时,代理绑定的Token将会从您的可用余额转移至您的预留余额。绑定为必要步骤,因为添加代理需要链上存储空间。从账户中移除代理后,绑定的Token将退还到您的可用余额中。
保证金根据保证金基础和保证金系数计算所得:
- 保证金基础 —— 为拥有代理列表帐户预留金额
- 保证金系数 —— 为主账户拥有的每个代理预留的额外金额
保证金计算公式:deposit base + deposit factor * number of proxies
变量 | 值 |
---|---|
保证金基数 | 10.08枚GLMR |
保证金系数 | 0.21枚GLMR |
代理上限 | 32个代理 |
变量 | 值 |
---|---|
保证金基数 | 1.0008枚MOVR |
保证金系数 | 0.0021枚MOVR |
代理上限 | 32个代理 |
变量 | 值 |
---|---|
保证金基数 | 1.0008枚DEV |
保证金系数 | 0.0021枚DEV |
代理上限 | 32个代理 |
代理类型¶
创建代理账户时,您必须选择一种代理类型来定义代理的使用方式,可用选项如下:
AuthorMapping
—— 允许收集人将服务从一台服务器迁移至另一台服务器CancelProxy
—— 允许代理账户拒绝和移除任何已公布的代理调用Staking
—— 允许代理账户执行质押相关交易,例如收集人或委托人功能,包括authorMapping()
Governance
—— 允许代理账户执行治理相关交易,例如投票或民主提案NonTransfer
—— 允许代理账户提交除余额转账以外的任何交易类型Balances
—— 允许代理账户仅处理发送资金相关交易IdentityJudgement
—— 允许代理账户向注册商请求对账户身份的判断。可以作出以下判断:- unknown - (默认)尚未做出判断
- fee paid - 表示用户已请求判断并且正在进行中
- reasonable - 信息看似合理,但未进行深入检查(即正式的KYC流程)
- known good - 信息已被证明是正确的
- out of date - 信息曾经很好,但现在已经过时了
- low quality - 信息质量低或不精确,但可以通过更新修复
- erroneous - 信息有误,可能表示恶意
Any
—— 允许代理账户使用由代理pallet支持的任何函数
在本教程中,您将使用余额代理类型设置代理账户。由于此代理类型能够代表主账户花费资金,因此您需谨慎操作,只对您信任的账户提供访问权限。代理将有权转移主账户中的所有资金,如若不授权,代理可能转移所有主账户的资金。另外,请确保根据需求移除代理。
创建代理账户¶
在Polkadot.js Apps,您可以在Extrinsics页面或Accounts页面创建代理账户。然而,如果您要创建延时代理,您将需要在Extrinsics页面进行操作。时间延迟通过指定基于多个区块的延迟时段为代理提供额外安全层。延迟期结束前,代理账户无法执行交易。这使主账户能够在该时间段审查代理的待处理交易(可能存在恶意操作的交易),在必要时于执行前取消操作。
想要创建代理账户,进入Developer标签,在下拉菜单中选择Extrinsics。然后执行以下步骤:
-
选择主账户
-
在submit the following extrinsic下拉菜单中选择proxy
-
选择addProxy函数
-
为代理选择delegate账户
-
在proxyType下拉菜单中选择Balances
-
若需要,您也可以使用指定数量的区块设置时间延迟,为主帐户增加额外的安全层以查看待处理的交易
-
点击Submit Transaction
随后,将会跳出弹窗要求您授权和签署交易。点击Sign and Submit创建代理关系。
交易成功提交后,您将收到交易确认的通知。
如前文所述,您也可以从Accounts创建代理账户。进入Accounts页面,点击主账户旁边的三个竖点,选择Add proxy。
注意事项
如果帐户中已有代理,显示的选项将会是Manage proxies,而不是显示Add proxy。
随后,将会跳出弹窗,您将能够输入所需信息(如主账户/被代理账户、代理账户、代理类型等)以创建代理账户。
在下一部分,您将学习如何验证您的代理账户是否已成功设置。
验证您的代理账户¶
您可以通过Accounts页面或Chain state页面验证您的代理账户是否已成功设置。
在Chain state页面验证您的代理账户,您需执行以下步骤:
-
点击Developer标签
-
在下拉菜单中选择Chain state
-
在selected state query下拉菜单中选择proxy
-
选择proxies函数
-
选择您的主账户/被代理账户
-
点击+按钮发送查询请求
随后将在页面出现结果,显示所有代理的信息,包括委托/代理地址、代理类型、延迟期(若有设置)以及为所有代理绑定的总绑定数量(以wei为单位)。
如前所述,您也可以通过Accounts页面验证您的代理账户。进入Accounts页面,主账户旁边应出现代理图标。将鼠标移至该图标,点击Proxy overview查看您的代理。
随后将跳出弹窗,您可以查看所有代理账户的信息。
执行代理交易¶
完成上述操作后,您已拥有一个代理账户并验证该账户已成功设置,现在您可以使用代理账户代表您的主账户执行交易。
首先进入Extrinsics页面,随后执行以下操作:
-
在using the select account下拉菜单中选择代理账户提交交易
-
在submit the following extrinsic下拉菜单中选择proxy
-
选择proxy函数
-
在real下拉菜单中选择主账户
-
选择balances函数
-
选择transfer函数
-
在dest字段输入资金接收地址
-
在value字段输入资金数量(以wei为单位)。例如,您将发送2枚DEV token,您需输入
2000000000000000000
(若以wei为单位) -
点击Submit Transaction
随后,将会跳出弹窗要求您授权和签署交易。输入代理账户的密码后点击Sign and Submit。
交易成功提交后,您将收到交易确认的通知。如果您进入Accounts页面,您将看到您主账户的余额已减少。您再查看您的接收账户的余额,您将看到余额已增加。
这样就可以了!这意味着您已成功使用代理账户代表您的主账户执行交易!
移除代理账户¶
与创建代理账户相似,您可以在Extrinsics页面或Accounts页面移除代理账户。无论您在哪个页面操作,您都可以选择移除单个代理帐户或与您的主帐户关联的所有代理。
在Extrinsics页面移除代理账户,您需要执行以下步骤:
-
在using the selected account下拉菜单选择您的主账户
-
选择proxy
-
选择removeProxy以移除单个代理账户或removeProxies以移除所有关联代理
-
如果移除单个代理账户,在delegate字段输入要移除的代理账户
-
选择proxyType函数,本示例中应选择Balances
-
若需要,在区块数量中选择延迟时段
-
点击Submit Transaction
随后,将会跳出弹窗要求您授权和签署交易。可以选择从主账户或代理账户签署和发送交易,但为了移除代理,交易必须从主账户发送。输入您的密码并点击Sign and Submit。
您可以遵循验证您的代理账户部分的操作步骤,查看您的代理是否已被移除。
如前所示,您也可以在Accounts页面移除代理账户。进入Accounts页面,点击主账户旁边的三个竖点,选择Manage Proxies。
随后将跳出弹窗,您可以查看所有代理账户的信息。您可以点击代理账户旁边的X按钮移除单个代理账户。代理将从列表中移除,随后点击Submit。接下来,输入您的密码提交交易。您也可以点击Clear all移除所有的代理,随后系统将自动提示您输入密码和提交交易。
交易成功提交后,您可以查看您当前的代理。如果您移除了所有代理,您会看到代理图标不再显示在主帐户旁边。
这样就可以了!您已成功学会如何创建代理账户、查看所有与主账户相关联的代理账户、执行代理交易以及移除代理账户!
Created: December 29, 2021