账户权限控制

1.首先配置一个单群组4节点的链

1.1创建操作目录

cd ~ && mkdir -p fisco && cd fisco
在这里插入图片描述

1.2下载国内脚本

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.9.1/build_chain.sh && chmod u+x build_chain.sh
在这里插入图片描述

1.3搭建单群组4节点联盟链

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
在这里插入图片描述

1.4 启动所有节点

bash nodes/127.0.0.1/start_all.sh
账户权限控制_第1张图片

2搭建控制台

2.1回到fisco目录,下载配置文件

cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
账户权限控制_第2张图片

2.2拷贝控制台配置文件

在这里插入图片描述

2.3配置控制台证书

cp -r nodes/127.0.0.1/sdk/* console/conf/
在这里插入图片描述

2.4启动控制台,查看是否配置成功

bash start.sh
在这里插入图片描述

exit或者quit命令退出

3.回到console目录下

cd console
在这里插入图片描述

4.下载脚本

curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/tools/get_account.sh && chmod u+x get_account.sh && bash get_account.sh -h

因为我这里系统已经有了,就不发截图了

5.使用脚本生成PEM格式私钥与PKCS12格式私钥

bash get_account.sh
在这里插入图片描述
bash get_account.sh -p
在这里插入图片描述

PKCS12格式的需要定义密码

6.分别使用p12私钥与pem私钥进入控制台

pem格式

bash start.sh 1 -pem accounts/0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.pem
账户权限控制_第3张图片

可以使用getCurrentAccount命令来查看当前账户,看是否使用私钥登录成功

在这里插入图片描述

p12格式

bash start.sh 1 -p12 accounts/0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.p12
账户权限控制_第4张图片

7.权限与角色

账户权限控制_第5张图片

8.指定账户1登录控制台

账户1

0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.pem

账户2

0x85961172229aec21694d742a5bd577bedffcfec3.pem

账户3

0x0b6f526d797425540ea70becd7adac7d50f4a7c0.pem
bash start.sh 1 -pem accounts/0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.pem
账户权限控制_第6张图片

9添加账户1与账户2为委员

[group:1]> grantCommitteeMember 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a
{
    "code":0,
    "msg":"success"
}
[group:1]> listCommitteeMembers
---------------------------------------------------------------------------------------------
|                   address                   |                 enable_num                  |
| 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a  |                      1                      |
---------------------------------------------------------------------------------------------

grantCommitteeMember 指定账户 //添加指定账户为委员
listCommitteeMembers //查看所有委员

账户权限控制_第7张图片

10.验证账号3无权限执行委员操作

接下来的操作都不展示登录了,如果你要使用哪个账号操作就要用哪个账号登录控制台

setSystemConfigByKey tx_count_limit 100 //设置系统中区块打包最大交易数量设为100
普通账号
账户权限控制_第8张图片
委员账号
账户权限控制_第9张图片

getSystemConfigByKey tx_count_limit //查看区块最大打包交易数量情况

在这里插入图片描述

11撤销账号2的委员权限

此时系统中有两个委员,默认投票生效阈值50%,所以需要两个委员都投票撤销账号2的委员权限,有效票/总票数=2/2=1>0.5才满足条件。

账号1投票撤销账号2的委员权限

revokeCommitteeMember 0x85961172229aec21694d742a5bd577bedffcfec3
账户权限控制_第10张图片

账号2投票撤销账号2的委员权限

账户权限控制_第11张图片

12.委员权重修改

先添加账户1、账户3为委员。然后更新委员1的票数为2。

使用账号1的控制台投票更新账号1的票数为2

updateCommitteeMemberWeight 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a 2

使用账号3的控制台投票更新账号1的票数为2

updateCommitteeMemberWeight 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a 2

查看账号票数

queryCommitteeMemberWeight 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a
账户权限控制_第12张图片

13.委员投票生效阈值修改

账户1和账户3为委员,账号1有2票,账号3有1票,使用账号1添加账号2为委员,由于2/3>0.5所以直接生效。使用账号1和账号2,更新生效阈值为75%。

使用账户1与3控制台投票更新生效阈值为75%

updateThreshold 75

查看账户投票阈值

queryThreshold
账户权限控制_第13张图片

14.运维新增

委员可以添加运维,运维角色的权限包括部署合约、创建表、冻结解冻所部署的合约、使用CNS服务。

基于职责权限分离的设计,委员角色不能兼有运维的权限,生成一个新的账号40x283f5b859e34f7fd2cf136c07579dcc72423b1b2.pem。

添加账号4为运维角色

账户权限控制_第14张图片

15.使用运维账号与普通账号来部署

普通账号
在这里插入图片描述
运维账号
在这里插入图片描述

你可能感兴趣的:(区块链,python,区块链,安全)