首页 > 其他分享 >区块链的搭建和运维4

区块链的搭建和运维4

时间:2024-08-08 10:26:52浏览次数:13  
标签:委员 运维 账户 如下 命令 控制台 区块 输入 搭建

区块链的搭建和运维4

(1) 搭建基于MySQL分布式存储的区块链

1.构建单群组网络节点

使用开发部署工具构建单群组网络节点,命令如下:

bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545

在这里插入图片描述

2. 启动 MySQL 并设置账户密码

输入如下命令,启动 MySQL 服务,右下角出现 [OK] 字样表示启动成功

service mysql start

MySQL 服务启动成功后,在终端输入如下命令,登录 mysql

mysql -uroot -p

在这里插入图片描述

输入如下命令,设置 root 账户的密码为 ”123456“

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

在这里插入图片描述

输入如下命令,退出 MySQL

quit;

3.配置 MySQL

在终端输入如下命令,编辑 MySQL 配置文件(/etc/mysql/my.cnf),并在键盘输 入”i“,进入输入模式

vim /etc/mysql/my.cnf

在文件末尾添加如下内容,输入完成后,在键盘左上角按 ”ESC“ 键,输入”:wq“ 保 存退出,如下图

[mysqld]
max_allowed_packet = 1024M
sql_mode = STRICT_TRANS_TABLES
ssl = 0
default_authentication_plugin = mysql_native_password

在这里插入图片描述

输入如下命令,重启 MySQL 服务

service mysql restart

1.7 验证参数

输入如下命令,登录 MySQL 数据库,需要输入之前设置的密码

mysql -uroot -p

输入如下命令,查看 max_allowed_packet 的值

show variables like 'max_allowed_packet%';

输入如下命令,查看 sql_mode 的值

show variables like 'sql_mode%';

输入如下命令,查看 default_authentication_plugin 的值

show variables like 'default_authentication_plugin';

在这里插入图片描述
Cb5.png&pos_id=img-wNAbqHJg-1723008968840)

输入如下命令,退出 MySQL 数据库

quit;

4.修改节点存储配置

修改 node0 的数据存储配置,输入以下命令,并在键盘输入”i“,当左下角出现 ”-- 插入–“ 时进入输入模式

vim nodes/127.0.0.1/node0/conf/group.1.ini

在这里插入图片描述

其他节点同样操作

5.启动节点

输入如下命令,启动所有节点

bash nodes/127.0.0.1/start_all.sh

在这里插入图片描述

(2) 配置控制台

再终端输入如下命令,解压控制台压缩包,

tar -zxvf console.tar.gz

在终端输入如下命令,将节点 sdk 证书拷贝到控制台 conf 目录下

cp nodes/127.0.0.1/sdk/* console/conf/

输入如下命令,将控制台 conf 目录下的 config-example.toml 文件重命名为 config.toml 文件

cp console/conf/config-example.toml console/conf/config.toml

输入如下命令,启动控制台

bash console/start.sh

在这里插入图片描述

(3) 委员账户权限操作

1.账户准备

在控制台输入如下命令,生成账户地址

newAccount

在这里插入图片描述

在新打开的终端输入如下命令(私钥文件根据实际情况输入),使用创建的账户启 动控制台

bash fisco/console/start.sh 1
fisco/console/account/ecdsa/0x742bceda913fdc79595198c86634b45802754
5bc.pem

在这里插入图片描述

在控制台再次输入如下命令,生成账户地址

newAccount

在这里插入图片描述

在新打开的终端输入如下命令(私钥文件根据实际情况输入),使用创建的账户启 动控制台

在这里插入图片描述

在第一个控制台输入如下命令,查看控制台加载的账户地址

listAccount

在这里插入图片描述

为方便理解,本实验规定如下:

加载 “0xa29f51b0…” 账户的为 1 号控制台,账户地址用 A 表示

加载 “0x742bceda…” 账户的为 2 号控制台,账户地址用 B 表示

加载 “0x3eddcbf7…” 账户的为 3 号控制台,账户地址用 C 表示

2.添加委员

在 1 号控制台输入如下命令,添加账户A为委员 需要注意的是,初始系统无权限设置记录,任何账户均可使用权限设置,一旦设置权限 后,只有委员才可授权委员账号;另外,添加委员操作需要投票决定,由于初始系统无 委员账户,任意地址投票即可生效

grantCommitteeMember 0xa29f51b088808a08497d04897da9700475a6716d

在这里插入图片描述

在 1 号控制台输入如下命令,可查看系统中的委员账户

listCommitteeMembers

在这里插入图片描述

在 2 号控制台中输入如下命令,尝试将账户B添加为委员

grantCommitteeMember 0x742bceda913fdc79595198c86634b458027545bc

在新打开的终端中输入如下命令,使用 root 账户登录 MySQL,并连接到 db_node0 数据库

mysql -uroot -p123456 -A db_node0

在这里插入图片描述

在 MySQL 输入如下命令,查看权限表(sys_table_access

select * from _sys_table_access_;

在这里插入图片描述

可以看到,委员账户A 对 sys_configsys_consensussys_table_access 三个 表具有写入权限。

在控制台 1 输入如下命令,将账户B添加为委员 添加委员操作需要投票决定,此时系统中只有一位委员(账户A),生效阈值=有效票/ 总票数=1/1=1>0.5,所以立即生效。

grantCommitteeMember 0x742bceda913fdc79595198c86634b458027545bc

在这里插入图片描述

在 1 号控制台输入如下命令,可查看系统中的委员账户

listCommitteeMembers

在这里插入图片描述

此时系统中已经有两个委员账户,分别为账户A和账户B。

在 MySQL 输入如下命令,再次查看权限表(sys_table_access

select * from _sys_table_access_;

在这里插入图片描述

可以看到,委员账户(账户B)对 sys_configsys_consensussys_table_access 三个表具也具有写入权限。

3.撤销委员

在 1 号控制台输入如下命令,撤销账户B的委员角色

grantCommitteeMember 0x742bceda913fdc79595198c86634b458027545bc

在 1 号控制台输入如下命令,查看系统中的委员账户

listCommitteeMembers

在这里插入图片描述

此时系统中有两个委员账户(账户A和账户B),账户A账户投票后的生效阈值=有效票/ 总票数=1/2=0.5,而 FISCO BCOS 的默认有效阈值必须大于 0.5 才可生效,所以账户A 投票后, 账户B仍是委员。

在 2 号控制台输入如下命令,撤销账户B的委员角色

grantCommitteeMember 0x742bceda913fdc79595198c86634b458027545bc

在这里插入图片描述

在 1 号控制台输入如下命令,查看系统中的委员账户

listCommitteeMembers

在这里插入图片描述

当账户B也投票后,有效阈值=有效票/总票数=2/2=1>0.5,撤销账户B委员的提议通 过,因此再次查询委员账户列表只有账户A。

在 MySQL 输入如下命令,再次查看权限表(sys_table_access)变化情况

select * from _sys_table_access_;

在这里插入图片描述

撤销委员并不会删除权限表中的数据,而是以 status 字段来标注该账户是否可用,0 表示该账户地址可用,1 表示不可用。

4.修改委员权重

在 1 号控制台输入如下命令,添加账户C为委员

grantCommitteeMember 0x3eddcbf715b02701a1d061ade21fe938642f50a4

在 1 号控制台输入如下命令,可查看系统中的委员账户

listCommitteeMembers

在这里插入图片描述

此时系统中只有一位委员(账户A),生效阈值=有效票/总票数=1/1=1>0.5,所以立即 生效。

在 1 号控制台输入如下命令,修改账户A的权重为 2

updateCommitteeMemberWeight
0xa29f51b088808a08497d04897da9700475a6716d 2

在这里插入图片描述

此时系统中存在两个委员(账户A和账户C),因此账户A投票后不能立即生效,还需要 账户C进行投票才能生效。

在 3 号控制台输入如下命令,修改账户A的权重为 2

updateCommitteeMemberWeight
0xa29f51b088808a08497d04897da9700475a6716d 2

在这里插入图片描述

账户C投票后,有效阈值=有效票/总票数=2/2=1>0.5,立即生效,账户A的权重修改为 2。

在 1 号控制台输入如下命令,查看账户A的权重

queryCommitteeMemberWeight
0xa29f51b088808a08497d04897da9700475a6716d

在 1 号控制台输入如下命令,查看账户C的权重

queryCommitteeMemberWeight
0x3eddcbf715b02701a1d061ade21fe938642f50a4

在 1 号控制台输入如下命令,添加账户 B 为委员

grantCommitteeMember 0x742bceda913fdc79595198c86634b458027545bc

在 1 号控制台输入如下命令,可查看系统中的委员账户

listCommitteeMembers

在这里插入图片描述

修改权重后,账户A的权重为2,账户A投票后,有效阈值=有效票/总票数=2/3>0.5,立 即生效,即不需要账户C再进行投票。

5.修改生效阈值

在 1 号控制台输入如下命令,修改系统的有效阈值为75(默认为50)

updateThreshold 75

在这里插入图片描述

此时系统中有三个委员(账户A权重为2,账户B权重为1,账户C权重为1),生效阈值 =有效票/总票数=2/4=0.5=默认有效阈值(0.5),即还需要其他委员投票才能生效。

在 2 号控制台输入如下命令,修改系统的有效阈值为75(默认为50)

updateThreshold 75

在这里插入图片描述

在账户B投票成功后,生效阈值=有效票/总票数=3/4=0.75>0.5,修改系统有效阈值的 提议通过。

在 1 号控制台输入如下命令,查询系统有效阈值

queryThreshold

在 1 号控制台输入如下命令,撤销账户C的委员角色

revokeCommitteeMember 0x3eddcbf715b02701a1d061ade21fe938642f50a4

在这里插入图片描述

此时系统中有三个委员(账户A权重为2,账户B权重为1,账户C权重为1),生效阈值 =有效票/总票数=2/4=0.5<0.75,即还需要其他委员投票才能生效。

在 2 号控制台输入如下命令,撤销账户C的委员角色

revokeCommitteeMember 0x3eddcbf715b02701a1d061ade21fe938642f50a4

在账户B投票成功后,生效阈值=有效票/总票数=3/4=0.75=0.75,即还需要账户C投票 才能生效。

在 3 号控制台输入如下命令,撤销账户C的委员角色

revokeCommitteeMember 0x3eddcbf715b02701a1d061ade21fe938642f50a4

在账户C投票成功后,生效阈值=有效票/总票数=4/4=1>0.75,立即生效。

(4) 运维账户权限操作

1.新增运维

在 1 号控制台输入如下命令,新增账户C为运维账户

grantOperator 0x3eddcbf715b02701a1d061ade21fe938642f50a4

在这里插入图片描述

运维账户的新增和撤销不需要投票操作,由委员账户授权即可。

在 1 号控制台输入如下命令,查看运维账户列表

listOperators

2.部署调用合约

在 3 号控制台输入如下命令,使用运维账户部署合约

deploy HelloWorld

台输入如下命令,调用刚才部署的合约(合约地址根据自己的实际情 况输入)

call HelloWorld 0x0bbc3309b7eddb87f59c233d4e7dec5280934b21 get

3.冻结和解冻合约

在 3 号控制台输入如下命令,冻结刚才部署的合约(合约地址根据自己的实际情 况输入)

freezeContract 0x0bbc3309b7eddb87f59c233d4e7dec5280934b21

在 3 号控制台输入如下命令,尝试调用合约

call HelloWorld 0x0bbc3309b7eddb87f59c233d4e7dec5280934b21 get

在 3 号控制台输入如下命令,解冻合约(合约地址根据自己的实际情况输入)

unfreezeContract 0x0bbc3309b7eddb87f59c233d4e7dec5280934b21

在这里插入图片描述

4.撤销运维账户

在 1 号控制台输入如下命令,撤销账户C的运维权限

revokeOperator 0x3eddcbf715b02701a1d061ade21fe938642f50a4

在 1 号控制台输入如下命令,查看运维账户列表

listOperators

在这里插入图片描述

标签:委员,运维,账户,如下,命令,控制台,区块,输入,搭建
From: https://blog.csdn.net/2401_84837659/article/details/140989598

相关文章

  • 快速基于 ClickHouse + Grafana 搭建可观测性解决方案 - 日志篇(ClickHouse 官方博客)
    引言作为一款高性能的OLAP数据库,ClickHouse被用于多种应用场景,包括时间序列(timeseries)数据的实时分析。其多样化的应用场景推动了大量分析函数的发展,这些函数有助于查询大多数类型的数据。这些查询特性加上高压缩率使得越来越多的用户开始利用ClickHouse来存储可观测性......
  • Electron + Vue+Node.js 搭建前端桌面应用
    一、在使用Electron之前我们要了解Electron是什么?Electron官网地址点此: electron官方地址Electron相当于一个浏览器的外壳,我们将编写的HTML,CSS,Javascript网页程序嵌入进Electron里面以便于在桌面上进行运行。通俗来讲它就是一个软件,如QQ、网易......
  • 从0开始搭建个人博客《第五期:个人域名申请与备案》
    目录一、个人域名申请二、个人域名ICP备案三、结语一、个人域名申请        访问阿里云域名注册申请官网:https://wanwang.aliyun.com/        注册登录后,在搜索框输入想要注册的域名关键字和选择域名后缀,点击查询域名,在出现的搜索结果中,选择显示有未......
  • Ubuntu Linux 搭建邮件服务器(postfix + dovecot)
    准备工作1.一台公网服务器(需要不被服务商限制发件收件的,也就是端口25、110、143、465、587、993、995不被限制),如有防火墙或安全组需要把这些端口开放2.一个域名,最好是comcnorg的一级域名3.域名备案(如果服务器是国外的则不需要备案)一、配置域名解析1.登录阿里云,找到云解......
  • HarmonyOS 私仓搭建实战
    HarmonyOS私仓搭建实战背景在Android和iOS开发中很多时候都以以二进制的产物的方式进行依赖和协作,Android基于Mave为仓库,iOS有Pod为仓库,我们可以在官方提供的的平台使用别人开放的库,极大的提高了大家的开发效率。但是有些公司业务相关的库并不想被外部人员使用,上传到外部......
  • 搭建 Web 群集Haproxy
    案例概述        Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有Haproxy好。Haproxy官方网站是http://ww......
  • 如何利用 LNMP 搭建 WordPress 站点
    在这个信息爆炸的时代,拥有一个能够迅速传达信息、展示个性、并能够与世界互动的在线平台,已成为企业和个人的基本需求。WordPress,以其无与伦比的易用性和强大的扩展性,成为了构建此类平台的首选工具。而LNMP,这个由Linux、Nginx、MySQL和PHP组成的强大组合,为WordPress提供了一个稳定......
  • 【运维自动化-配置平台】如何使用云资源同步功能(腾讯云为例)
    云资源同步是通过apikey去单向同步云上的主机资源和云区域信息,目前支持腾讯云和亚马逊云。主要特性1、蓝鲸配置平台周期性的单向只读同步云主机和vpc(对应蓝鲸云区域)信息,第一次全量,后面增量2、默认同步到主机池,也可自定义主机池模块,需要手动分配到业务3、主机随云控制台销毁而......
  • 【ACM独立出版 | EI&Scopus检索稳定 | 高录用】2024年数字经济,区块链与人工智能国际学
    2024年数字经济,区块链与人工智能国际学术会议(DEBAI2024)为第五届大数据与社会科学国际学术会议(ICBDSS2024)的分会,将于2024年8月23-25日在中国-广州隆重举行。为了让更多的学者有机会参与会议分享交流经验。本次会议主要围绕“数字经济,区块链与人工智能等研究领域展开讨论......
  • 基于vscode搭建freertos环境
    前言目前网上windows仿真freertos的资料都是比较久远的,不太适合现有的开发,因此重新整理了一下资料.目标:使用Vscode进行FreeRTOS开发和仿真.关键词:freertos,vscode,llvm,cmake,windows环境配置编译器目前使用的是llvm-MinGW-msvcrt:Releases·mstorsjo/llvm-mingw(g......