EOS账户系统(7)权限评估
1. 场景
- 授权涉及个人或群体,并且往往是分类的。
- 身份验证和权限管理必须标准化,并与应用程序的业务逻辑分开。
2. 定义
确认某项操作是否被正确授权。
最简单的权限管理是检查交易是否具有所需的签名,这也意味着所需的签名是已知的。
EOS 提供了一个声明式权限管理系统,可以对账户进行细粒度、高级别的控制,以确定谁在何时可以做什么。
2.1. 评估过程
以通用的方式管理权限:从小到大进行逐级匹配。
@alice 以 “Action” 类型发送一条消息给 @bob
step1. 检查 @alice 是否为 @bob.groupa.subgroup.Action 定义过权限映射。
step2. 如果没有找到,紧接着检查 @bob.groupa.subgroup 映射,然后是 @bob.groupa,最后 @bob 将被检查。如果都没有找到,那么假定映射为命名的权限群组 @alice.active。
- 一旦一个映射被识别,则使用相关联的签名验证权限。
- 如果失败了,则跃迁至父权限,直至拥有者权限@alice.owner。
2.2. 特点
权限管理和程序逻辑是相互独立的,自然权限评估和程序逻辑也是可以分开执行的,这让验证权限成为一个只读过程且可以并发执行、跳过多余的权限评估过程,从整体上提高性能,显著提高TPS性能。
权限评估过程是“只读”的,并且对事务所做的权限更改直到块结束才会生效。
=>
- 所有事务的密钥和权限评估可以并发执行;
- 可以快速验证权限,而不需要重新启动昂贵的应用程序逻辑;
2.3. 交易权限
验证权限占验证交易所需计算资源的很大一部分。
- 交易权限可以在接收到待处理的交易时进行评估,而在应用它们时无须重新评估。
- 当我们重放区块链的历史,试图从操作日志重新生成确定性状态时,不需要再次评估权限。交易包含在一个已知的不可逆区块中这一客观事实,足以让其跳过权限评估的步骤。这极大地减少了重放不断增长的区块链时消耗的计算资源。
EOS账户系统(7)权限评估相关推荐
- EOS账户系统(3)账户的权限
EOS 中的账户就像一个链上标识符,具有与之关联的访问权限. EOS 帐户可以由几个人拥有,具体取决于权限. 1. 权限分类 基于角色确定是否为任何给定的Action授予权限. 1.1 默认权限 每个 ...
- EOS账户系统(4)账户权限分级
1. 一个分层的权限结构 每个账户都可以通过其他账户和密钥的组合来控制.EOS 允许账户定义什么样的账户名和密钥的组合可以把特定的操作发送到另一个账户.eg. 可以使用一个密钥访问用户的社交媒体账户, ...
- EOS账户系统(2)账户和钱包
1. 账户系统 包含 Account(账户) Wallet(钱包) 钱包密码 Key(公/私钥) Permission(权限) 账户和钱包之间没有内在的关系. 1.1 钱包 一个存储可能与账户有关的密 ...
- EOS账户系统(1)场景
1. 智能合约的场景问题 "智能合约"= 账户声明的Action+ 以及对Action的回应脚本(程序). 真人用户和智能合约本质上都是一个账户(Account). Action ...
- EOS账户系统(8)密钥被盗恢复
1. 定义 一种在密钥被盗时恢复其帐户控制的方法: 帐户所有者可以使用在过去30天内活动的任何其批准的帐户恢复合作伙伴的密钥,在其帐户恢复合作伙伴的允许后,重置其帐户上的所有者密钥. 在没有帐户所有者 ...
- EOS账户系统(5)action分级
1. 定义 与权限分级类似,账户Action也可以分级和分组 Action 同样遵循"向下兼容" 2. 举例 智能合约账户叫"@EXCHANGE.CONTRACT&quo ...
- EOS账户系统(6)权限和Action映射
1. 定义 可以将某个消息处理群组分配到某个权限级别上,或者反过来说,可以在某个权限级别上定义很多消息处理群组. eg. 一个帐户所有者可以将自己社交媒体应用与自己的"朋友"权限群 ...
- w10系统服务器如何创建新用户,关于Win10怎么给本地账户添加管理员权限的讲解...
不经意间我们又来到了windows系统文章的学习,快乐是无处不在的 而分享快乐不仅仅是让自己快乐 也让周围的人都快乐 因为分享也是一种快乐,下面就跟大家分享一下我们的文章,我们的文章也许不起眼,但是想 ...
- EOS账户的两种权限——你造吗
每个EOS账户都包含两种权限,对应了拥有者权限(Owner Key)和管理者权限(Active Key),这两种权限所拥有的权限不同. 二者关系具体如下图: 拥有者权限(Owner Key)可以控制管 ...
最新文章
- QNX设置开机启动命令来修改IP地址
- json工具类ObjectMapper的详细使用记录
- AtCoder Beginner Contest 179 总结
- 【BZOJ3437】小P的牧场,斜率优化DP
- 网络安全-SQL注入原理、攻击及防御
- 关灯游戏java代码_江湖救急!在用JAVA做一个关灯游戏,有些不会的地方
- 抖音AI大数据,贼棒。
- 20分钟让你阅读速度提高3倍
- 学生信息管理系统代码
- matlab 画三棱柱,教大家几何画板画出三棱柱图形
- 智慧云教育平台实战项目笔记
- sin(ωt),一文和正弦函数、频域、周期的头疼说白白
- 在ODBC 中 应 用DDX 和RFX (转)
- JS禁用页面某区域不可选中文字、及修复导致行内编辑出现某单元格不可输入的问题
- linux系统写批处理文件
- 博达路由器如何配置互联网ip_博达路由器操作命令
- 【Python】司徒卢威函数
- DD-WRT v24-sp2的WDS中继设置
- 亚马逊测评现在还能做吗?需要注意哪些?
- WebSocket和socket介绍
热门文章
- Vector 把一个vector追加到另一个vector
- mysql实验四图书视图_[数据库实验四.doc
- java 修饰符 访问控制符_Java访问修饰符(访问控制符)
- 微软如何在3年内将数据中心的用水量削减95%
- 银行IT:研究框架(165页)
- 精密空调内部培训资料
- 数据网络卡顿怎么处理_监控网络卡顿怎么办
- tv英语域名注册_企业邮箱十万个为什么——域名篇
- 成功解决_catboost.CatBoostError: Invalid cat_features[4] = 8 value: index must be < 8.
- 成功解决ValueError: column index (256) not an int in range(256)