目录
一、角色定义
二、账户权限控制
1.委员新增、撤销与查询
2.委员权重修改
3.委员投票生效阈值修改
4. 运维新增、撤销与查询
一、角色定义
分为治理方、运维方、监管方和业务方。考虑到权责分离,治理方、运维方和开发方权责分离,角色互斥。
-
治理方:拥有投票权,可以参与治理投票(AUTH_ASSIGN_AUTH),可以增删节点、修改链配置、添加撤销运维、冻结解冻合约、对用户表的写权限控制。链级别的可变配置的权限。
-
运维方:由治理方添加运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。
-
业务方:业务方账号由运维添加到某个合约,可以调用该合约的写接口。
-
监管方:监管方监管链的运行,能够获取链运行中权限变更的记录、能够获取需要审计的数据
二、账户权限控制
现拥有账户:A:0xa767a4206ef39a17e40773d694051434bf557e24,B:0xba0bc02599215aff47357bc7c764a1132c52b355,C:0xd3f18300cfc68ef9fe17798fd7b36436ee252792,分别使用其私钥进入控制台,具体操作可参见这里:【FISCO-BCOS】十五、创建和使用账户_奈何不吃鱼的博客-CSDN博客
1.委员新增、撤销与查询
新增A账户为委员,由于目前只要A账户为委员,因此只需要一票即可通过
如果我们再新增B账户为委员,此时由于只有账号1是委员,所以账号1投票即可生效。
使用listCommitteeMembers查看委员列表
如果此时要撤销账号B的委员,由于此时系统中有两个委员,默认投票生效阈值50%,所以需要两个委员都投票撤销账号B的委员权限
此时查看委员列表,撤销权限成功
2.委员权重修改
先添加账户A、账户C为委员,使用账号A的控制台投票更新账号A的票数为2
由于账户C也是委员,所以权重修改也需要在C账户的控制台执行
3.委员投票生效阈值修改
账户A和账户C为委员,账号A有2票,账号C有1票,使用账号A添加账号B为委员,由于2/3>0.5所以直接生效。使用账号A和账号B,更新生效阈值为75%。
使用账户A控制台投票更新生效阈值为75%
使用账户B控制台投票更新生效阈值为75%
4. 运维新增、撤销与查询
委员可以添加运维,运维角色的权限包括部署合约、创建表、冻结解冻所部署的合约、使用CNS服务,先使用get_account脚本再生成一个新的账户D:0xdbb5445316fd2b1690a1ebeee62d12aab9cf7b46
添加账号D为运维角色
使用账号D部署HelloWorld,成功
使用账号A部署HelloWorld,失败
撤销账号D的运维权限