首页 > EOS柚子 > 正文

EOS智能合约开发之五帐户和权限

太平洋工作室  2019-03-10  EOS/EOS柚子栏目  

  

一、帐户和权限的介绍

  帐户和权限是EOS中相当重要的一部分,这也是它和以前的区块产品不同的一个明显的特征。要想深入了解EOS中智能合约的编写和应用,就必须掌握帐户和权限体系。在前面的几篇文章中其实已经使用和分析了这二者的一些内容,在本篇中详细说明一下。

二、密钥

  如果想创建帐户首先要有创建帐户的密钥,包括公钥和私钥,那么这两个密钥怎么来的呢?
cleos create key这个命令来创建,具体如下:

1cleos create key --FILe ./keysave-owner.txt

  一般来说,推荐生成两套密钥,一个用来做为最高权限,一个用来做action的权限。

三、帐户

  帐户的意义和人们普遍使用的帐户的理解基本一样,只不过在EOS中有一些具体的限制(不过这个限制越来越少了,请查看最新的定义方式),比如长度为十二位,不包含大写等。在EOS上,每个帐户有个默认的权限,即owner,active。当然,EOS的灵活性就在于你可以自定义你要设置的权限,通过阈值来保护你的数据和财产的安全性。
创建帐户的命令如下:

1cleos creat account <creator> <name> <OwnerKey> <ActiveKey>

  creator: 支付创建费用的账号
name: 新账号名称
OwnerKey: 其拥有新账号最高的权限,可以执行这个账号的所有action。应该谨慎设置。
ActiveKey: 此key通常用来转帐、交易、投票及其它自定义的action。
这两个KEY,就是在上面创建的那两个KEY,在前面几篇文章有好多的例子,这里就不再重复了。

四、钱包

  有了密钥有了帐户,那么需要有一个钱包是管理他们,钱包是用来存储相关KEY的程序,可以在创建帐户(或者设置帐户权限时),将二者关联起来。关联的方法是导入密钥到钱包中,形式如下:

1cleos  wallet import -n allmoney --private-key  5JsKPdjgb7JjAfCxKe2L2btzb2rDkG891SA6DdWJQdimfdfYzYz
五、权限

  上面提到了,在EOS中是可以自定义权限的,这就给EOS的智能合约的执行提供了极大的灵活性(这也带来了好多烦恼啊),现在就看一看如何自定义权限:

1cleos set account permission <account-name> <permission-name> <KEY> <parent-permission> -p accountname@active

  然后设置完成后可以使用:

1cleos get account account-name

  来查看设置的信息(这个在权限控制中有例子,这里就不再举了)。
在设置了新的自定义权限后,如果想用它执行某个action,还需要让他们关联起来:

1cleos set action permission <account> <cONTract> <action_name> <permission_name>

  同样,能关联也能取消,方法如下:

1cleos set action permission <account> <contract> <action_name> NULL
2cleos set account permission <account-name> <permission-name> NULL <parent-permission> -p accountname@active
六、总结

  本篇其实是对以前的智能合约中的帐户、钱包以及相关的权限的一个整体上的基本说明,具体的用法这里并没有展开,原因是前面好几篇中其实都实际应用到了这些,如果想实践可以跟着具体的目标来做就可以了。EOS的发展是十分迅猛的,希望写得这些东西对大家有帮助。

  

版权信息
作者:野蛮人的愤怒
来源:太平洋工作室

关于我们

联系我们

作者进驻

手机版

Copyright © 2013 比特巴 www.btb8.com
始建于2013年,提供比特币 区块链及数字货币新闻、技术教程、测评、项目周报、人物等资讯
本页面提供的是EOS教程资讯,EOS币为区块链奇才BM领导开发的类似操作系统的区块链架构平台,旨在实现分布式应用的性能扩展。