PlatONE是万向区块链与合作伙伴联合打造的区块链联盟链,支持隐私计算。本文为PlatONE的权限管理教程。
1. 系统合约简述
在PlatONE联盟链中,权限控制是由系统合约维护的,在链初始时系统上部署如下7个系统合约,用于权限管理。
系统合约名称 | 标识符 | 作用 |
---|---|---|
合约管理合约 | cnsManager | 记录名称到地址的映射关系 |
参数管理合约 | __sys_ParamManager | 维护链的系统级参数 |
用户管理合约 | __sys_UserManager | 用户管理 |
用户注册合约 | __sys_UserRegister | 用户注册 |
角色管理合约 | __sys_RoleManager | 角色管理合约 |
角色注册合约 | __sys_RoleRegister | 角色注册合约 |
节点管理合约 | __sys_NodeManager | 节点管理合约 |
- 系统合约支持的接口,请参照附录
ctool在~/PlatONE-Go/cmd/SysContracts/build
,系统合约存放在~/PlatONE-Go/cmd/SysContracts/build/systemContract/cnsManager
下
比如可以通过调用cnsManager合约来查询各个系统合约的地址
cd ~/PlatONE-Go/cmd/SysContracts/build
./ctool invoke --addr 0x0000000000000000000000000000000000000011 --abi ./systemContract/cnsManager/cnsManager.cpp.abi.json --config ./config.json --func getRegisteredContracts --param 0 --param 10
合约调用结果如下所示:
{"code":0,
"msg":"ok",
"data":{
"total":7,
"contract":[
{"name":"__sys_NodeManager","version":"1.0.0.0","address":"0xee62fbc0b45f594465738fb5c794c60f9827f59e","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359510,"enabled":true},
{"name":"__sys_NodeRegister","version":"1.0.0.0","address":"0x6d26ea822241d1baf1c774dd46947616cd0f3d40","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359511,"enabled":true},
{"name":"__sys_ParamManager","version":"1.0.0.0","address":"0x2f0956a40cdb7f64ecc532a9c3d7171ed193ed03","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359505,"enabled":true},
{"name":"__sys_RoleManager","version":"1.0.0.0","address":"0xfd82ff83bbfcfc0dea1fb48f015393f4218d61a7","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359508,"enabled":true},{"name":"__sys_RoleRegister","version":"1.0.0.0","address":"0x53ba35b8b8f4b7ab63094a5e9e7bc3485a0b7bd4","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359509,"enabled":true},
{"name":"__sys_UserManager","version":"1.0.0.0","address":"0x9ef86ec254db98b8e086e36803ce23195a66711c","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359506,"enabled":true},
{"name":"__sys_UserRegister","version":"1.0.0.0","address":"0xae7236d1d1788612101c9ee6b25f71925db3bf0d","origin":"0x9d41fe3b45f3cacb1bebbb4e5670f88ff74ef1c4","create_time":1561359507,"enabled":true}
]
}
}
2. 用户权限及管理
PlatONE中的权限都是对系统中的用户分配的,用户的角色即表示用户的权限,目前用户可以分配如下角色(权限)。
用户角色(权限) | 作用 |
---|---|
chainCreator | 链创建者,在链创建时生成,是系统中 |