警告:您可能成为了企图假冒本网站内容的目标。 我们检测到该网站被IFRAME包裹,这意味着与EOS Canada无关的人试图向您展示他们的内容与我们的内容相关,可能为了让您相信他们与EOS Canada有关。 我们与任何试图这样做的组织都没有联系,它也没有受到我们的认可



WARNING: you may have been the target of an attempt to misrepresent the content of this site. We detected that the site was wrapped in an IFRAME, which means that someone else, not associated with EOS Canada, attempted to show you their content combined in some way with ours, possibly to make you believe they are associated with EOS Canada. We are not associated with, and do not endorse, any organization attempting to do this.
background-flotant-top-right-01

Blog: EOS Block Producer Tips & News

background-flotant-top-left-01

Gathering Signatures for a Multisig

February 20, 2019 / by Josh Kauffman

If you've gone through our Multisig and Permission series, you should know how to craft an account’s permission structure to provide the security that you need, and how to create an msig proposal. We can finally move on to gathering the required signatures over the blockchain.

Defining the Requested Signatures

When crafting the msig proposal, you must specify the requested signatories. To do this, use the flag --request and then list the accounts that you require signatures from, separated by commas. It will request the active permission, unless you specify otherwise, by adding @permission_name.

To simplify the signature request process, and to save you from any possible mistakes, we’ve added a few flags to eosc to automate part of the process. Let’s walk through each of them and give examples of when you may want to utilize them.

Requesting Producer Signatures

One of the most widely seen uses of msig is when a proposal needs to collect the signatures from 15 of the top 21 Block Producers on the chain. This is used to satisfy the eosio.prods@active permission, which is used by all system level accounts. eosio.prods is an account with a dynamic permission structure listing all top 21 producers, which changes as votes are constantly being tabulated. Since there is the possibility of seeing a Block Producer move in and out of the production schedule during the time between proposal and execution, each proposal will typically be proposed with a request for signatures from the top 30 Block Producers as seen at the time of proposal. This will save from the need to re-propose should there be a lot of turnover between the Producers at the top. However, to satisfy the permission, eosio.prods@active will still require 15 signatures of the top 21 at time of execution.

To easily request signatures from the top 30 without the need to add them individually, you can utilize the flag --request-producers. Once you add this flag and run the command, you will see this list created automatically before entering your passphrase to execute.

Signing From an Account that Has an Msig Structure

Let’s take a look at the active permission for the EOS Canada producer account, eoscanadacom.

We have set up a structure like this to ensure that when our team signs something, that multiple people with fresh sets of eyes will have reviewed it. This also means that when eoscanadacom@active is included within the requested signatures of any proposal, we need to create an internal msig to gather the required signatures to sign that proposal.

We do this by creating a secondary proposal that includes a transaction of us approving the initial proposal, collecting the signatures needed to satisfy the active permission which was requested. To read a step-by-step walkthrough on how to create this secondary msig, please read through our guide. Rather than inputting each account, we simply run the command:

eosc multisig propose [PROPOSER] [PROPOSAL_NAME] [TRANSACTION_FILE] --request eoscanadacom --with-subaccounts

The --with-subaccounts flag will recursively navigate the delegated accounts of the given permission structure and add them to the requested permissions. This will help you save time and the need to re-propose a request caused by mistyping any of the multiple account names.

Requesting owner Permission

By default, the owner permission is omitted from recursion when using --with-subaccounts as it sometimes adds noise and most teams don't have their owner keys at hand anyway. You can easily add the request for the owner permission by adding on the flag --with-owner. This requires the --with-subaccounts flag to also be included in the command.

We have now reached the end of our multi-part series on how to understand and utilize the msig function and customizable permission structures within EOSIO chains. If you are left with any further questions, please join the discussion in our Telegram channel. These incredible tools are only just beginning to be utilized to help secure and advance the future of blockchain.

Topics: eosc, multi signature, permissions, Education

Josh Kauffman

Written by Josh Kauffman

Josh wants to educate those around him. Since learning of cryptocurrency, he’s become a missionary -- urging those around him to understand this technology that will underpin tomorrow’s world. His latest passion is the crypto space, looking to be part of those who lead the drive towards Web 3.0.

cubes-solid

ABCs of EOS

A glossary of terms that every EOS user should know.

MORE

Apply to Access Our Newsletter

Get exclusive insights into EOS blockchain technology