【PlatONE联盟链利用指南】若何通过链交互东西platonecli停止用户和角色权限操做?
PlatONE是由万向区块链和矩阵元配合打造的以隐私计算为特色的新一代联盟区块链平台,撑持企业级应用,已在2019年9月正式开源并在现实产物中投入利用。目前,PlatONE的单链TPS已超越5万,已获得国度工业及信息化部承认并通过了中国电子手艺尺度化研究院的功用认证和测试认证。
我们将通过一系列科普文章,率领各人走进PlatONE,从入门到精通。本文次要讲解通过链交互东西platonecil停止用户和角色权限操做的办法,帮忙各人实现用户注册、用户信息更新、用户信息查询、设置差别角色权限等功用。
用户操做 account
针对账户地址的相关操做。用户注册 account add
描述:对拥有的账户停止用户注册(User),审核通过的账户地址及其小我信息将被记录在用户平台。参数:
必选参数:
<account>: 用户账户地址 <name>: 用户名可选参数:
--tel: 用户德律风信息 --email: 用户邮箱信息 --organization string: 用户所属机构操做:
./platonecli account add "0xb239401ecf8427f17c6de134d6a6bddd3100251f" "Alice" --phone "13111111111" --email "alice@wx.bc.com" --organization wxbc --keyfile ../conf/keyfile.json输出成果:
{ "status": "Operation Succeeded", "logs": [ "Event addUser: 0 Success " ], "blockNumber": 227, "GasUsed": 113404, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x1000000000000000000000000000000000000001", "TxHash": "" }用户信息更新 account update
描述: 更新用户的德律风、邮箱等相关信息,通俗用户(无角色/无权限用户无法修改用户的信息,仅办理员账户可操做。
参数:
必选参数:
<address>: (选择停止更新的)用户账户地址可选参数:
--phone <number>: 用户德律风信息(更新) --email string: 用户邮箱信息(更新) --organization string: 用户所属机构(更新)操做:
# optional flags: ## 修改用户德律风 ./platonecli account update "0xb239401ecf8427f17c6de134d6a6bddd3100251f" --phone "13241231233" --keyfile ../conf/keyfile.json ## 修改用户邮箱 ./platonecli account update "0xb239401ecf8427f17c6de134d6a6bddd3100251f" --email "123@电话.com" --keyfile ../conf/keyfile.json ## 修改用户所属机构 ./platonecli account update "0xb239401ecf8427f17c6de134d6a6bddd3100251f" --organization "wxbc" --keyfile ../conf/keyfile.json输出成果:
{ "status": "Operation Succeeded", "logs": [ "Event updateUserDescInfo: 0 Success " ], "blockNumber": 228, "GasUsed": 110548, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x1000000000000000000000000000000000000001", "TxHash": "" }用户信息查询 account query
描述: 按照查询键值以及辅助选项停止信息的挑选查询,返回所有婚配胜利的数据对象参数:
可选参数: 用户信息查询,用于用户信息更新。
--user: 查询键,通过用户账户地址或账户名称停止查询(返回成果独一) --all: 查询全数用户操做:
用户信息和用户角色信息别离来自差别系统合约的存储中,重构后我们把用户信息与角色信息在内部停止联系关系后再反应给用户。
重构后:
# 1 通过用户账户地址查询用户信息
./platonecli account query --user "0xb239401ecf8427f17c6de134d6a6bddd3100251f" --keyfile ../conf/keyfile.json# 2 通过用户账户名查询用户信息
./platonecli account query --user "Alice" --keyfile ../conf/keyfile.json输出成果:
{ "address":"0xb239401ecf8427f17c6de134d6a6bddd3100251f", "authorizer":"0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "name":"Alice" }角色权限操做 role
针对角色权限的相关操做
设置超等办理员权限 role setSuperAdmin
警告:只能设置一次
描述: 链摆设后能够挪用该办法将当前账户停止超等办理员权限设置。
操做:
./platonecli role setSuperAdmin --keyfile ../conf/keyfile.json输出成果:
{ "status": "Operation Succeeded", "logs": [ "Event setSuperAdmin: Set SuperAdmin Succeed " ], "blockNumber": 2, "GasUsed": 102184, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x1000000000000000000000000000000000000001", "TxHash": "" }转移超等办理员权限 role transferSuperAdmin
描述: 转移超等办理员权限(挪用者需为当前的超等办理员)。
参数:
必选参数:
<address>: 转移后的超等办理员地址操做:
./platonecli role transferSuperAdmin "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18" --keyfile ../conf/keyfile.json输出成果:
{ "status": "Operation Succeeded", "logs": [ "Event setSuperAdmin: Set SuperAdmin Succeed " ], "blockNumber": 2, "GasUsed": 102184, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x1000000000000000000000000000000000000001", "TxHash": "" }角色添加 role addXXX
描述: 为某个账户地址添加指定角色的权限。
参数:
必选参数:
<address>: 被付与角色权限的账户地址操做:
#链办理员
./platonecli role addChainAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#群组办理员
./platonecli role addGroupAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#节点办理员
./platonecli role addNodeAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#合约办理员
./platonecli role addContractAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#通俗合约摆设者
./platonecli role addContractDeployer 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json输出成果:
{ "status": "Operation Succeeded", "logs": [ "Event addGroupAdminByAddress: 0 Success " ], "blockNumber": 197, "GasUsed": 105788, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x1000000000000000000000000000000000000001", "TxHash": "" }角色删除 role delXXX
描述: 为某个账户地址删除指定角色的权限。
参数:
必选参数:
<address>: 被付与角色权限的账户地址操做:
#链办理员
./platonecli role delChainAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#群组办理员
./platonecli role delGroupAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#节点办理员
./platonecli role delNodeAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#合约办理员
./platonecli role delContractAdmin 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json#通俗合约摆设者
./platonecli role delContractDeployer 0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18 --keyfile ../conf/keyfile.json输出成果:
{ "status": "Operation Succeeded", "logs": [ "Event delGroupAdminByAddress: 0 Success " ], "blockNumber": 198, "GasUsed": 105788, "From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18", "To": "0x1000000000000000000000000000000000000001", "TxHash": "" }获取权限地址列表 role getAddrListOfRole
描述: 获取权限地址列表。
参数:
必选参数:
<role>: 角色能够且只能为"SUPER_ADMIN", "CHAIN_ADMIN", "GROUP_ADMIN", "NODE_ADMIN", "CONTRACT_ADMIN" , "CONTRACT_DEPLOYER"此中之一操做:
#以SUPER_ADMIN为例
./platonecli role getAddrListOfRole "SUPER_ADMIN" --keyfile ../conf/keyfile.json输出成果:
# 以SUPER_ADMIN为例
["0x10ad2ec4831a1f89ec870a3224fead87cdb75931"]权限查抄 role hasRole
描述: 查抄某账户地址能否拥有指定用户权限。
参数:
必选参数:
<address>: 待查抄账户地址 <role>: 角色能够且只能为"SUPER_ADMIN", "CHAIN_ADMIN", "GROUP_ADMIN", "NODE_ADMIN", "CONTRACT_ADMIN" , "CONTRACT_DEPLOYER"此中之一操做:
#以SUPER_ADMIN为例
./platonecli role hasRole 0x10ad2ec4831a1f89ec870a3224fead87cdb75931 SUPER_ADMIN --keyfile ../conf/keyfile.json输出成果:
# 以SUPER_ADMIN为例
# 有权限 result: 1# 无权限
result: 0权限获取 role getRoles
描述: 获取某账户地址用户权限。参数:
必选参数:
<address>: 待查抄账户地址操做:
#以SUPER_ADMIN为例
./platonecli role getRoles 0x10ad2ec4831a1f89ec870a3224fead87cdb75931 --keyfile ../conf/keyfile.json输出成果:
["SUPER_ADMIN"]点击https://platone.wxblockchain.com/
,可下载《PlatONE:一个基于隐私计算的新一代联盟区块链平台》白皮书,领会PlatONE更多信息。