前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EOS 权限管理之-权限的使用 (你绝对找不到的干货)

EOS 权限管理之-权限的使用 (你绝对找不到的干货)

作者头像
lome
发布于 2018-06-08 14:43:40
发布于 2018-06-08 14:43:40
1.9K0
举报

首先,跟大家说声抱歉,由于之前一直在准备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权限转账

钱包中中的密匙:

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

创建测试账号

代码语言:txt
AI代码解释
复制
cleos create account eosio eosio.token EOS8Ar1fUGtZxcJ8Rdkh3rc55Vqg3ariR6fdBV8zxz4WgTW3nT73L EOS8Ar1fUGtZxcJ8Rdkh3rc55Vqg3ariR6fdBV8zxz4WgTW3nT73L
cleos create account eosio hello EOS5G13KtUHdsqbeuR2fcoRW4bUzJhigTcX37Aw39xKdy4NMQD9hZ EOS5G13KtUHdsqbeuR2fcoRW4bUzJhigTcX37Aw39xKdy4NMQD9hZ
cleos create account eosio eostea EOS8aQ3bgYKsipwsuPGzimnH5be9AkHr3N6Y7Knh6pSPoLAV2y6Ab EOS8aQ3bgYKsipwsuPGzimnH5be9AkHr3N6Y7Knh6pSPoLAV2y6Ab

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

发布eosio.token合约

代码语言:txt
AI代码解释
复制
cleos set contract eosio.token eosio.token/

发放并转账代币

代码语言:txt
AI代码解释
复制
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

如图所示:

转账测试

代码语言:txt
AI代码解释
复制
cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello

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

给账户hello添加hello权限

代码语言:txt
AI代码解释
复制
cleos set account permission hello hello '{"threshold": 1, "keys":[{"key":"EOS5dFqCCX8nhV5e2RZWTDGFtAw4mJcCjiQC9Fe6zquKwKky2aAEm","weight":1}],"accounts":[],"waits":[]}' active

新增权限hello绑定transfer动作

代码语言:txt
AI代码解释
复制
cleos set action permission hello eosio.token transfer hello

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

新增权限的使用

我们先来尝试用active权限转账,然后用hello权限转账:
代码语言:txt
AI代码解释
复制
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权限对应的密匙了。再次进行转账:

代码语言:txt
AI代码解释
复制
cleos push action eosio.token transfer '["hello","eostea","100.0000 TEA","transfer"]' -p hello@hello

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

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

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

代码语言:txt
AI代码解释
复制
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账户权限的灵活性。

好了!今天就到这里!!

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【许晓笛】 EOS 智能合约案例解析(2)
之前的文章介绍了 eosio.token 智能合约的 hpp 文件,这次向大家介绍 eosio.token.cpp 文件,cpp 文件即 C++ 代码文件,智能合约所有的业务逻辑内容都是在 cpp 文件中实现的。
圆方圆学院
2018/11/11
7870
【许晓笛】 EOS 智能合约案例解析(2)
【精解】EOS智能合约演练
EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整的实操演练,过程中深入熟悉掌握整个EOS智能合约的流程,过程中出现的问题也会及时研究并入我们自己的知识体系。本文会主要跟随EOS官方Wiki的智能合约部分进行研究学习,主要分为 开启一个私有链 创建钱包 载入基础IO的智能合约支持 创建账户 智能合约学习: token 交易所 智能合约实战: Helloworld 准备 EOS的智能合约采用C++ 编写,因为
文彬
2018/05/03
1.8K0
EOSIO 4.0测试网络启动教程
与EOS3.0相比,EOS4.0无疑是具有重要意义的预发布版。其中对eosio.system合约的更改相当大。下面就来说一下搭建网络的具体步骤。
lome
2018/05/13
1.7K0
EOSIO 4.0测试网络启动教程
EOS商业落地利器:多签名
钱包是一个客户端,用于存储keys,可能与也可能不与一个或多个账户进行关联。一个钱包会有锁定和解锁两种状态,理想状态下,它是被一个高熵密码所保护。EOSIO有一个命令行客户端cleos,与一个轻客户端keosd交互,它俩构成了eos钱包的这种模式。
文彬
2018/08/01
4700
eos源码赏析(十一):EOS之从“狼人游戏”看智能合约调用及权限分配(上)
火了没几天的“狼人游戏”因某些原因遭到口诛笔伐而下线,后期参与的玩家可谓损失惨重,而这一切的操盘仿佛都指向一个并不算匿名的匿名团队,毕竟在区块链上任何动作的执行都是可追溯的。该游戏上线不久即被指出存在数据溢出风险,同时该游戏的合约可以获取到参与用户的active权限,作为一个新生事物,eos的智能合约是可以更新的,可以想象当一个智能合约的开发者拥有了用户的active权限和一颗作恶的心,后果将是不堪设想的。
用户2569546
2021/11/23
5310
第10课 EOS常见命令及样例演示
【本文目标】 本文列出经常EOS环境经常会使用的命令格式以及样例,作为EOS命令的快速查找手册。 不管是EOS的命令行帮助说明还是命令行参考文档,对参数的引用描述都比较乱,辉哥重新整理后规定,用[表示参数可选],用<>表示执行命令时其里面的内容需要根据实际情况进行修改。
辉哥
2018/08/10
7410
第10课 EOS常见命令及样例演示
第7课 技术小白如何在EOS上发行通证(TOKEN)?
1)已搭建好EOS私链环境(可参考第4课 如何在UBUNTU虚拟机上编译EOS完成环境搭建?) 2)会进行相关钱包账号的操作( 参考第5课 EOS环境搭建入门(私链节点-钱包-密钥-账号)) 3) 本文操作时已存在以下资源信息 1] 钱包名称 duncanwang,对应的解锁密码为"PW5JYSZRvSropLhguyxYY1zXgeQidSZnRKPKUXr2JUVTYay2zhuxT" 2] 系统私钥/公钥对已导入钱包: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV / 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
辉哥
2018/08/10
8130
第7课 技术小白如何在EOS上发行通证(TOKEN)?
EOSIO 转帐详解
在EOS网络中存在两种货币,一种是EOS,还有一种是EOS网络中的代币。说到这里大家似乎有点疑惑,举个简单的例子,就好比ETH网络中的ETH,ETH网络中的其他代币。这样大家或许都清除了吧。
EOS中文社区
2018/05/10
1.4K1
eos bios合约和token合约详解
bios 合约: CMakeFiles CTestTestfile.cmake eosio.bios.abi.hpp eosio.bios.cpp.bc eosio.bios.wasm eosio.bios.wast.hpp cmake_install.cmake eosio.bios.abi eosio.bios.bc eosio.bios.s eosio.bios.wast Makefile bios的全称是 Basic Input
rectinajh
2018/06/08
1.1K0
EOS 区块链安装与基本操作
中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>
netkiller old
2018/06/28
3.2K0
EOS 区块链安装与基本操作
十分钟教你开发EOS智能合约
在CSDN、柏链道捷(PDJ Education)、HelloEOS、中关村区块链产业联盟主办的「EOS入门及最新技术解读」专场沙龙上,柏链道捷(PDJ Education)CTO、副总裁康烁,作了「
区块链大本营
2018/06/20
1K0
eos源码赏析(十二):EOS之从“狼人游戏”看智能合约调用及权限分配(下)
接上篇,本篇从智能合约内部权限使用出发,结合“狼人游戏”源码,谈谈eosio中权限的分配及使用,本文主要分为以下三部分:
用户2569546
2021/11/23
4360
200000000 Token! 这样的生日礼物, 简直不可思议...
hi,老铁们!今天营长分享一篇干货文章。营长将为你详细介绍去中心化应用(DApp )的设计思想与开发流程,也会手把手教你基于 EOS 进行网页发币的开发实战。
区块链大本营
2019/04/28
1.4K0
区块链 + 大数据:EOS存储
默克尔树的演化路线是 Hash => Hash Tree => Merkle Tree ,他们都是为解决数据一致性而存在的,具体的含义如下:
文彬
2018/09/19
2.8K0
区块链 + 大数据:EOS存储
EOS 投票合约,终于等到你。
config里面有一个config.ini配置文件,只有在运行一次nodes后才会出现,主要配置一些插件和节点,需要第一次运行修改。
lome
2018/05/11
1.8K0
【精解】EOS多节点组网:商业场景分析以及节点启动时序
源节点就是第一个EOS节点(Genesis node),也可以叫主节点,EOS多节点组网的前提是已经对单机环境非常熟悉,我们的架构如下:
文彬
2018/07/30
1.7K0
EOS实践篇
账号的创建和管理交给插件Scatter,玩家进入游戏的时候获取账号,如果没有,则提示玩家创建账号
陨石坠灭
2020/01/21
2.8K0
EOS实践篇
【源码解读】EOS测试插件:txn_test_gen_plugin.cpp
这个插件是官方开发用来测试块打包交易量的,这种方式由于是直接系统内部调用来模拟transaction,没有中间通讯的损耗,因此效率是非常高的,官方称通过这个插件测试到了8000的tps结果,而就我的测试结果来讲,没有这么恐怖,但也能到2000了,熟不知,其他的测试手段,例如cleos,eosjs可能只有百级的量。下面,我们一同来研究一下这个插件是如何实现以上功能的,过程中,我们也会思考EOS插件的架构体系,以及实现方法。通过本文的学习,如果有好的想法,我们也可以自己开发一个功能强大的插件pr给eos,为EOS社区做出我们自己的贡献。
文彬
2018/07/30
1K0
如何创建和部署一个属于自己的EOS代币 原
与以太坊相反,EOS带有即插即用的代币智能合约。以太坊拥有ERC20智能合约,EOS拥有eosio.token智能合约。Eosio.token智能合约允许你通过提供最大代币供应数量和代币的书面定义,通过向帐户发放代币以及在帐户之间转移代币来创建你自己的代币。EOS区块链上的EOS代币使用相同的智能合约签发。
笔阁
2018/12/13
1.3K0
如何创建和部署一个属于自己的EOS代币
                                                                            原
eosio.system合约分析部署合约:
eos有个核心理念,EOS代币的所有者给予用户按比例的网络带宽、存储空间、运算能力。好处是用户拥有1%的EOS代币,无论网络其余部分的负载如何,他将始终可以访问1%的网络带宽。恶意攻击者只能消耗根据其EOS代币占比拥有的相应比例的网络资源。不会影响整个eos网络。 本文目的是分析eos这一核心理念是如何实现的? 根据eos官网找到了代码实现的范围 https://github.com/EOSIO/eos/tree/master/contracts/eosio.system eosio.system是EOS
rectinajh
2018/06/08
1.5K0
相关推荐
【许晓笛】 EOS 智能合约案例解析(2)
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档