首先,跟大家说声抱歉,由于之前一直在准备EOS上线的一些工作,所以,很长时间没有更新内容。今天正好有时间,也想到了一些题材,就来说一下这个话题。本文完全是个人见解,如有不当之处,欢迎指出。

前提回顾:

相信看这篇教程的人,对我之前的一些账户操作已经进行了了解,如果不了解的,可以移步 https://eosfans.io/topics/372

之前讲了单个账户的权限的增、删、改、查及一系列操作,并没有讲到权限的使用,那么如果我们增加一个权限,但是不会用它,那又有什么意义呢?

所以,今天就来学习一下权限的使用。

说明: 本教程,通过eosio.token合约的transfer来进行演示。

目录

  1. 创建eosio.token并发放eosio.token合约
  2. 创建测试账号eostea
  3. 测试账号eostea发放代币
  4. 测试账号转账给账号hello
  5. hello账号添加权限hello
  6. hello账号转账给eostea
  7. hello账号权限hello绑定action
  8. hello账户通过hello权限转账

钱包中中的密匙:

我所有钱包中的密匙如下:

创建测试账号

cleos create account eosio eosio.token EOS8Ar1fUGtZxcJ8Rdkh3rc55Vqg3ariR6fdBV8zxz4WgTW3nT73L EOS8Ar1fUGtZxcJ8Rdkh3rc55Vqg3ariR6fdBV8zxz4WgTW3nT73L
cleos create account eosio hello EOS5G13KtUHdsqbeuR2fcoRW4bUzJhigTcX37Aw39xKdy4NMQD9hZ EOS5G13KtUHdsqbeuR2fcoRW4bUzJhigTcX37Aw39xKdy4NMQD9hZ
cleos create account eosio eostea EOS8aQ3bgYKsipwsuPGzimnH5be9AkHr3N6Y7Knh6pSPoLAV2y6Ab EOS8aQ3bgYKsipwsuPGzimnH5be9AkHr3N6Y7Knh6pSPoLAV2y6Ab

下面我创建本文的所有测试账号,创建情况如下:



发布eosio.token合约

cleos set contract eosio.token eosio.token/

发放并转账代币

cleos push action eosio.token create '["eostea","10000000000.0000 TEA","create"]' -p eosio.token
cleos push action eosio.token issue '["eostea", "10000000000.0000 TEA","issue"]' -p eostea
cleos push action eosio.token transfer '["eostea","hello","100000000.0000 TEA","transfer"]' -p eostea

如图所示:



转账测试

cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello

可能大家看到这里还是一头雾水,别着急重点马上就来。

给账户hello添加hello权限

cleos set account permission hello hello '{"threshold": 1, "keys":[{"key":"EOS5dFqCCX8nhV5e2RZWTDGFtAw4mJcCjiQC9Fe6zquKwKky2aAEm","weight":1}],"accounts":[],"waits":[]}' active

新增权限hello绑定transfer动作

cleos set action permission hello eosio.token transfer hello

权限绑定action成功,那么有什么用呢?注意见证奇迹的时刻到了。

新增权限的使用

我们先来尝试用active权限转账,然后用hello权限转账:

cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello@active
cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello@hello

大家可以看到我们用hello权限也成功执行了转账操作。

可能一些小伙伴就要说,你的钱包里有active权限对应的密匙。好,那么我把钱包锁起来,只留hello权限的密匙。

大家可以看到,现在我的钱包里只剩下hello权限对应的密匙了。再次进行转账:

cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello@hello

大家可以看到,这次转账也是成功的。

可能有些同学又要找茬了,那说不定hello这个权限本来就能转账呢?

那么,我们现在解除hellotransfer绑定关系(注意这里是需要active权限来接触绑定关系),再次转账

cleos set action permission hello eosio.token transfer NULL
cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello@hello

大家可以看到,没有绑定权限,是操作不成功的。

应用场景

权限和action的绑定关系,极大的增加了eos网络权限的灵活性,通过单个权限的绑定,我们可以将一个账户的权限分层管理,甚至一个公司的所有人都可以使用一个EOS账户来进行权限分分离。

下面我拿hello账号举个例子:

  1. owner: 公司的所有者,或者股东,根据权限分配给每个股东相应的权限。
  2. active: 管理阶层,可添加部门如active,转账,等除拥有者以外的所有操作。
  3. hello:财务部门,具有转账权限。
  4. oo: 部门小组,可以有相应的转账权限
  5. o: 员工,权限不详。

这样成功的将整个公司所有成员的账户都容纳进一个账户,足见EOS账户权限的灵活性。

好了!今天就到这里!!

如需转载请联系作者!!谢谢!!!

原文链接: https://eosfans.io/topics/653

EOS 权限管理之-权限的使用的更多相关文章

  1. Linux课程---10、权限管理(权限有哪几种)

    Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x---  2 root root  4096 Jan 20 19:39 mnt ...

  2. 权限管理——ACL权限

    权限管理 ACL权限 用于解决用户对文件身份不足 命令:[root@localhost ~]#dumpe2fs -h /dev/sd3 作用:查询指定分区详细的文件系统给信息 选项 -h:仅显示超级块 ...

  3. linux权限管理-特殊权限

    目录 linux权限管理-特殊权限 一,特殊权限 Linux权限属性chattr概述 linux进程掩码umask linux权限管理-特殊权限 一,特殊权限 1.suid(4000) SetUID( ...

  4. linux权限管理-基本权限

    目录 linux权限管理-基本权限 权限修改命令chmod linux权限管理-基本权限 权限 针对某些文件和进程,对用户进行限制 权限与用户的关系 rwx rwx r-x User Group Ot ...

  5. Linux用户和权限——管理文件权限的命令

    Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...

  6. linux权限管理—基本权限

    目录 Linux权限管理-基本权限 一.权限的基本概述 二.权限修改命令chmod 三.基础权限设置案例 四.属主属组修改命令chown Linux权限管理-基本权限 一.权限的基本概述 1.什么是权 ...

  7. 05 Linux系统下的用户以及用户权限管理(权限管理介绍、用户管理、常见命令介绍)

    这一节我们介绍Linux的用户以及权限管理的前半段,包括:1.权限管理介绍: 2.用户管理: 3.常见命令 权限管理介绍 权限管理: 为了访问计算机资源,我们需要对其进行授权才能访问,根据什么东西来进 ...

  8. Linux权限管理 ACL权限

    ACL权限简介 在普通权限中,用户对文件只有三种身份ugo,分别为属主(u).属组(g)和其他人(o):每种用户身份拥有读(read).写(write)和执行(execute)三种权限.但是在实际工作 ...

  9. linux初级学习笔记八:linux权限管理及权限管理命令详解!(视频序号:04_2)

    本节学习的命令:chown,chgrp,chmod,openssl,umask 本节学习的技能: 文件权限详解及对其的操作 生成随机密码命令 用遮罩码对用户权限进行修改 站在用户登陆的角度来说SHEL ...

随机推荐

  1. Qt分页导航控件

    最近在使用QTableWidget时,因为结果数量比较多而且又有单元格控件,为了改善效率要做分页处理.在网上找了一番,最后在http://www.cppblog.com/biao/archive/20 ...

  2. 1.1环境的准备(一)之Python解释器的安装

    目录: 1.Python-解释器的下载 2.Python-解释器的安装 3.Python-解释器的测试 4.Python的环境变量的配置 (一)Python解释器的安装: 1.官网:https://w ...

  3. WINDOWS SOCKET编程中accept出来的新连接是阻塞还是非阻塞

    实践证明 SOCKET hNewSock=accept(hListenSock) 当hListenSock为阻塞模型时,hNewSock则为阻塞模型 否则 当hListenSock为非阻塞模型时,hN ...

  4. phpstorm添加laravle语法支持

    PHPStorm神器可以支持更友好的laravel框架代码提示,只需要执行如下才做: 第一步:在项目的composer.json中添加如下一行 "require": { " ...

  5. 团队作业8--测试与发布(Beta阶段)

    展示博客 一.项目成员: 张慧敏(组长)201421122032 苏晓薇(组员)201421031033 欧阳时康(组员)201421122050 团队仓库: https://git.coding.n ...

  6. Java BAT大型公司面试必考技能视频-1.HashMap源码分析与实现

    视频通过以下四个方面介绍了HASHMAP的内容 一. 什么是HashMap Hash散列将一个任意的长度通过某种算法(Hash函数算法)转换成一个固定的值. MAP:地图 x,y 存储 总结:通过HA ...

  7. svn: 无法连接主机“127.0.0.1”: 拒绝连接

    尝试搭建SVN服务器,前面的步骤都OK,服务已经启动, svnserve -d --listen-port 80 --listen-host 0.0.0.0 -r /data/nerrissa/svn ...

  8. HTML5 <iframe> 标签

    iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 即页面中嵌入另外一个独立的页面使用iframe,熟悉src是嵌套的页面的路径地址,scrolling属性可以设置iframe的滚动条 ...

  9. jmeter数据库查询与接口返回进行对比

    今天在群里又看到了一个小伙伴问类似的问题,[jmeter如何实现数据库查询出来的结果与接口返回的结果进行对比判断,或者数据库两字段的相加减与接口返回进行对比].其实都一样,因为你把运算放在查询那里就行 ...

  10. Android Fragment(二)

    废话:在上一篇的博客中我们给出了Fragment的简单介绍,这一片博客给大家介绍一下Fragment到底该怎样用.主要都用在哪方面等等. 需求:现有一个界面,要求,竖屏时界面的背景颜色为红色,横屏时界 ...