显示软件包…
1 个稳定版本
2.0.0 | 2021 年 4 月 4 日 |
---|
#25 in #tetcore
37 个月下载次数
在 8 个软件包中使用(通过 node-runtime)
1.5MB
25K SLoC
身份模块
概述
一个联合命名系统,允许从指定的起源添加多个注册机构。注册机构可以设置费用以提供身份验证服务。任何人都可以提出一个固定的存款的提案身份,并请求任何数量的注册机构的审查。注册机构的判断以 enum
的形式给出,允许复杂的、多级意见。
一些判断被标识为 sticky,这意味着它们不能被移除,除非完全删除身份,或由注册机构删除。判断允许代表保留给注册机构的部分资金。
超级用户可以删除账户,并因此扣除存款。
所有账户也可能有一个由所有者指定的有限数量的子账户;按照定义,这些账户具有等效的所有权,每个账户都有一个单独的名称。
应该限制注册机构的数量,并确保存款足够大,以确保没有状态膨胀攻击可行。
接口
可调用的函数
用于普通用户
set_identity
- 设置账户的关联身份;如果没有占用,则保留小额存款。clear_identity
- 删除账户的关联身份;返还存款。request_judgement
- 从注册机构请求判断,支付费用。cancel_request
- 取消先前的判断请求。
用于具有子身份的普通用户
set_subs
- 设置身份的子账户。add_sub
- 向身份添加子身份。remove_sub
- 从身份删除子身份。rename_sub
- 重命名身份的子身份。quit_sub
- 从身份删除子身份(由子身份调用)。
用于注册机构
set_fee
- 设置由注册员给出裁决所需的费用。set_fields
- 设置注册员在裁决中关注的字段。provide_judgement
- 向身份提供裁决。
对于超级用户
add_registrar
- 将新的注册员添加到系统中。kill_identity
- 强制删除关联的身份;押金将丢失。
许可证:Apache-2.0
依赖项
~4–12MB
~148K SLoC