如何收集 multisig (多签)签名
第五章 | 收集一个 multisig (多签)签名
如果您已经阅读了我们的 Multisig(多签)和权限的系列文章,您应该知道如何制定帐户的权限结构以建立所需的安全性,和如何创建多签提议。 我们终于可以继续在区块链上收集所需的签名。
定义请求的签名
在制作多签提案时,您必须指定签名者。 使用标志 \--request
,然后列出您需要收集签名的帐户,以逗号分隔。 除非您通过添加 @permission_name
另行指定,否则它将请求 active
权限。
为了简化签名的请求过程,并为了避免任何可能的错误,我们在 eosc
中添加了一些 flag 来自动化部分过程。 让我们逐一介绍它们,并举例说明什么时候可以使用它们。
请求节点签名
多签最常见的用途之一为提案收集前21个节点中的15个的签名。这用于满足 [
[email protected]][3]
权限,该权限由所有系统级帐户使用。eosio.prods
是一个具有动态权限结构的帐户,列出了所有前21个节点,这些节点随着投票的排名而变化。由于在提案和执行期间有可能节点移入和移出节点出块列表,因此通常每个提案会同时请求来自前30个节点的签名。如果前21个节点的排名有很大变化,这将节省重新发布提议的需要。但是,为了满足权限,[email protected]
在执行时仍需要前21名的15个签名。
要轻松地从前30名请求签名而无需单独添加,您可以使用标志 \--request-producers
。添加此标志并运行命令后,您将在输入要执行的密码之前自动创建此列表。
有多签结构的帐户如何签名
让我们来看看 EOS Canada 节点账户 eoscanadacom
的 active
权限。
我们已经建立了这样的结构,以确保当我们的团队签署某些内容时,会有多个人对其进行审核。这也意味着当任何提案的请求 [email protected]
签名时,我们需要创建一个内部的多签来收集所需的签名以签署该提案。
我们通过创建二级提案来完成此操作,该提案包括我们批准初始提案的交易,收集满足所请求的 active
权限所需的签名。要了解有关如何创建此辅助多签的分步演练,请阅读我们的指南。不用输入每个帐户,我们只需运行命令:
eosc multisig propose [PROPOSER] [PROPOSAL_NAME] [TRANSACTION_FILE] --request eoscanadacom --with-subaccounts
\--with-subaccounts
标志将递归检索指定权限结构相对应的帐户,并将它们添加到请求的权限上。这能帮您节省时间,也能避免由于输入多个帐户名称时犯错而重新提出请求。
请求 owner
权限
默认情况下,使用\--with-subaccounts
时会从递归中省略 owner
权限,因为它有时会添麻烦,并且大多数团队一般都不会动他们的 owner
**。 您可以通过添加标志 \--with-owner
轻松添加对 owner
权限的请求。 这需要 \--with-subaccounts
标志也包含在命令中。
我们现在已经完成了对于 EOSIO 链中的多签功能和自定义权限结构的学习。 如果您还有其他问题,请加入我们的电报频道中的讨论。 这些有用的工具会在长远的角度帮助确保和推进区块链的未来。
第一章 | EOSIO 多签和权限总览
第二章 | 使用 eosc 更改帐户的权限结构
第三章 | 满足 multisig(多签)权限
第四章 | 嵌套权限和 linkauth (链接验证)
第五章 | 收集一个 multisig (多签)签名