EOS商业落地利器:多签名 (4)

以上两个非jack账户的审批过程就是多签名的内容,多签名执行成功以后,可以开始执行提案。

liuwenbin@liuwenbin:~$ cleos multisig exec eosio.msig nojack -p eosio.msig

--

执行成功以后,再次检查各账户的SYS余额,能够发现此提案的转账50个SYS的操作已经生效。

自定义权限

上面提到了,除了owner和active权限之外,我们还可以自定义权限。仍在以上@Jack账户中进行补充,增加一个自定义权限,名为publish:

permission account weight threshold
publish       2  
  @Alice   2    
  @Bob   2    
  "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"   1    

weight:

权重,这是相对于上面threshold阈值的概念,就拿上面的属于账户@Jack的publish权限来讲,它包含三个子权限分别是:

@Alice账户,权重为2

@Bob账户,权重为2

一个keys,权重为1

而此时publish权限的阈值设定为2,也就是说,@Alice或@Bob任意一个账户均可以签名授权@Jack账户的publish权限,因为这两个账户的权重均为2,任意一个签名都可保证够到publish权限的阈值2。而如果只有权重为1的keys签名,则必须再有以上任意一个账户来同时签名,总权重达到了3,超过了publish阈值2才可以成功授权。

自定义权限部分的演示与上面的类似,通过set account permission可以设置有key,有账户,不同权重的十分复杂的权限内容。这里不再赘述。

总结

本文可以分为两部分,第一部分是如何为一个账户设置复杂的权限体系,第二部分是如何利用账户权限进行多账户签名。这部分内容十分灵活,依据这个流程,我们可以根据业务场景需要,调整设计。例如,多账户必须均签名才能通过某一个操作,或者多账户只要其中一个或者多个签名即可通过某一个操作。通过本文所述,均可实现。

参考资料

EOS官方文档

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpysjy.html