博客
关于我
Aragon DAO 权限分析
阅读量:795 次
发布时间:2019-03-25

本文共 1083 字,大约阅读时间需要 3 分钟。

Aragon DAO权限结构简要分析

在Aragon DAO中,权限管理是确保Dapp协同工作的重要环节。本文将从权限分类、实现、初始化及管理等方面,对Aragon DAO的权限结构进行简要分析,试图为开发者提供一些实用的参考。

一、权限分类

在Aragon DAO中,权限主要分为两个层面:角色权限与管理权限。

角色权限指的是某一Dapp中特定功能的执行权限,而管理权限则负责对Dapp中角色权限的配置与管理。例如,若有合约A-B-C-D,合约A包含一个写数据的方法f(),用来更改其状态变量X:

  • 调用A.f()更改X的权限,需提供B地址,这属于角色权限
  • 为A.f()设置调用权限为C地址,这由D负责,属于管理权限
  • 需要注意的是,Aragon DAO系统要求默认管理权限由投票合约负责,所有管理操作需通过投票机制完成。

    二、权限实现

    Aragon ACL合约采用map结构存储权限信息。主要包括以下几个方面:

  • 权限哈希计算:通过roleHash函数定义角色权限hash值,其输入包括Dapp地址和操作描述
  • 权限参数存储:将权限参数通过编码存入数据库
  • 管理权限映射:将管理权限委托存储在对应的地址中
  • ACL合约核心逻辑位于ACL.sol,主要函数包括:

    • 初始化函数:设置初始权限创建者,确保系统安全
    • _createPermission:为实例创建权限
    • setPermissionManager:设置Dapp管理权限
    • Revocation相关函数:管理角色权限
    • Query函数:提供权限查询接口

    三、权限初始化

    ACL合约初始化过程为:

  • 存储初始块号,确保单次初始化
  • 检查调用来源,只允许核心 kernel合约
  • 设置初始权限,配置默认管理员
  • 初始化过程重要,因为它确定了系统管理框架。

    四、权限管理

    ACL合约提供丰富的权限管理接口,涵盖:

    • createPermission:设置未管理权限的Dapp
    • grantPermission:赋予已管理权限的Dapp
    • revokePermission:取消特定权限
    • setPermissionManager:更换管理权限
    • removePermissionManager:移除管理权限
    • createBurnedPermission:销毁未用的权限
    • Query接口:支持权限检查和信息查询

    本文仅描述关键管理方法,对其他内部函数不做详细说明。

    总结来说,Aragon DAO权限结构设计颇为完善。通过角色与管理权限的分类设置,实现了灵活的Dapp协同,同时确保了系统安全性。对于其他DAO系统的设计或优化,这一机制可提供重要参考。

    转载地址:http://itpyk.baihongyu.com/

    你可能感兴趣的文章
    Python块键盘/鼠标输入
    查看>>
    python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
    查看>>
    python在gpu上运行_【python】python开启GPU加速
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在def函数中使用for循环
    查看>>
    Python在Conda环境中,但在Windows虚拟环境中没有激活
    查看>>
    python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
    查看>>
    python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
    查看>>
    Python图像处理:从内存加载jpeg
    查看>>
    python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
    查看>>
    python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
    查看>>
    python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
    查看>>
    python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
    查看>>
    Python哪个版本最稳定好用2023.10.19
    查看>>
    Python和黑客技术的渊源
    查看>>
    Python和RF编写接口自动化
    查看>>
    python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
    查看>>
    python和java哪个更值得学——来自知乎高赞回答
    查看>>
    python和c混合编程 github_在pycharm中使用git版本管理以及同步github的方法
    查看>>
    python命名空间更改_Python模块xml.etree.ElementTree自动修改xml命名空间键
    查看>>