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
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.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
可以使用getCurrentAccount命令来查看当前账户,看是否使用私钥登录成功
p12格式
bash start.sh 1 -p12 accounts/0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.p12
7.权限与角色
8.指定账户1登录控制台
账户1
0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.pem
账户2
0x85961172229aec21694d742a5bd577bedffcfec3.pem
账户3
0x0b6f526d797425540ea70becd7adac7d50f4a7c0.pem
bash start.sh 1 -pem accounts/0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a.pem
9添加账户1与账户2为委员
[group:1]> grantCommitteeMember 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a
{"code":0,"msg":"success"
}
[group:1]> listCommitteeMembers
---------------------------------------------------------------------------------------------
| address | enable_num |
| 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a | 1 |
---------------------------------------------------------------------------------------------
grantCommitteeMember 指定账户 //添加指定账户为委员
listCommitteeMembers //查看所有委员
10.验证账号3无权限执行委员操作
接下来的操作都不展示登录了,如果你要使用哪个账号操作就要用哪个账号登录控制台
setSystemConfigByKey tx_count_limit 100
普通账号
委员账号
11撤销账号2的委员权限
此时系统中有两个委员,默认投票生效阈值50%,所以需要两个委员都投票撤销账号2的委员权限,有效票/总票数=2/2=1>0.5才满足条件。
账号1投票撤销账号2的委员权限
revokeCommitteeMember 0x85961172229aec21694d742a5bd577bedffcfec3
账号2投票撤销账号2的委员权限
12.委员权重修改
先添加账户1、账户3为委员。然后更新委员1的票数为2。
使用账号1的控制台投票更新账号1的票数为2
updateCommitteeMemberWeight 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a 2
使用账号3的控制台投票更新账号1的票数为2
updateCommitteeMemberWeight 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a 2
查看账号票数
queryCommitteeMemberWeight 0x61d88abf7ce4a7f8479cff9cc1422bef2dac9b9a
13.委员投票生效阈值修改
账户1和账户3为委员,账号1有2票,账号3有1票,使用账号1添加账号2为委员,由于2/3>0.5所以直接生效。使用账号1和账号2,更新生效阈值为75%。
使用账户1与3控制台投票更新生效阈值为75%
updateThreshold 75
查看账户投票阈值
queryThreshold
14.运维新增
委员可以添加运维,运维角色的权限包括部署合约、创建表、冻结解冻所部署的合约、使用CNS服务。
基于职责权限分离的设计,委员角色不能兼有运维的权限,生成一个新的账号40x283f5b859e34f7fd2cf136c07579dcc72423b1b2.pem。
添加账号4为运维角色
15.使用运维账号与普通账号来部署
普通账号
运维账号