关注

区块链国赛第一套样题(关于运维)

任务1-2:区块链系统部署与运维

子任务 1-2-1:搭建区块链系统并验证

基于给定服务器环境以及软件(地址"/root/tools"),搭建一条4节点的区块链系统并验证,具体工作内容如下:

1. 采用默认配置搭建区块链网络;

2. 通过命令验证区块链节点进程运行状况;

3. 通过命令验证区块链连接状态和共识状态日志输出。

前置准备工作:下载依赖(openssl,curl)、下载fiscobcos二进制文件、下载build_chain.sh脚本

1-2-1-1

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

 这行代码会自动下载压缩fiscobcos二进制文件,也可以自己下载到本地,使用 -f 参数 指定fiscobcos文件的路径

进入到对应目录下启动节点

 1-2-1-2

ps -ef | grep -v grep | grep fiscobcos

ps命令用于显示当前运行的进程

参数-e表示显示出当前所用的进程

参数-f表示以完整的格式显示出进程

| grep -v grep | grep fisco-bcos 表示过滤与grep相关的进程,只留下fiscobcos进程

1-2-1-3

这里题干没有明确说明是查看哪个节点的连接状态和共识状态,我们就以node0为例

连接状态

tail -f node0/log/log* | grep connected

 tail命令默认查看文件末尾10的内行

参数 -f 表示持续监视文件的变化,当文件内容更新时,实时的显示新增的内容 

共识状态

tail -f node0/log/log* | grep +++

 子任务1-2-2:搭建区块链系统管理平台并验证

基于给定服务器环境以及软件(地址“/root/tools”),搭建区块链控制台并开展相关运维工作,具体工作内容如下:

1. 配置控制台,管理相关证书并启动;

2. 使用控制台安装HelloWorld智能合约;

3. 使用控制台完成HelloWorld智能合约的set与get操作;

4. 使用控制台查看区块链中区块高度。

准备工作:下载java依赖、控制台压缩包

1-2-2-1

启动控制台前需要先拷贝一下控制台配置文件和节点证书

cp nodes/127.0.0.1/sdk/* console/conf/
cp console/conf/config-example.toml console/conf/config.toml

1-2-2-2

1-2-2-3

1-2-2-4

我们部署了HelloWorld合约,也进行了一次set更新数据的操作,此时的区块高度应为2

 子任务1-2-3:区块链节点运维

基于已完成的区块链系统与管理平台搭建工作,开展区块链节点的加入与退出运维工作,具体内容如下:

1. 获取指定区块链节点输出等级为警告级,并设置日志存储阈值位100MB并验证

2. 通过给定工具(地址/root/tools)完成新节点(node4)配置;

3. 启动新节点加入区块链系统并验证。

1-2-3-1

同样这道题并没有给出具体要操作的节点,我们就以node0为例

修改node0下的配置文件config.ini

将level默认的info改为warning、max_log_file_size默认的200改为100

然后重启node0节点。操作到这里就完成了,但题目里要求验证

我们验证等级是否为警告级可以使用检查共识状态和节点连接数,理论上我们都是正常的节点,所以一般运行这两行命令不会有输出。这里有一个小坑需要注意一下,就是这次不要使用log/*去检查,因为每次启动节点都会生成一个log文件,如果带上了*去检查,可能会有上一次的log文件输出相关的内容。

验证存储阈值就比较难以验证了,而且我们的node0节点还是warning输出等级,就更难以实现了,我们现在的存储阈值是100MB,日志里的内容假如超过了100MB,就会自动生成一个新的log文件,这也就验证了。我们可以把100改为2MB验证一下,超过了2MB是否会自动生成一个新的log文件。

1-2-3-2

准备环境:生成证书的脚本gen_node_cert.sh

bash gen_node_cert.sh -c nodes/cert/agency -o nodes/127.0.0.1/node4

参数-c 表示指定机构及私钥所在的路径

参数-o表示输出到指定的文件夹

所以node4/conf 目录下会存在机构agency新签发的证书和私钥

cp node1/config.ini node1/start.sh node1/stop.sh node4/

这里拷贝node1节点的配置文件、启动和停止脚本,因为我们的node0配置文件修改过,不太纯净,所以这里采用node1节点来配置

在node4目录下修改刚刚拷贝的config.ini配置文件

对于[rpc]模块,修改channel_listen_port=20204和jsonrpc_listen_port=8549;对于[p2p]模块,修改listen_port=30304并在node.中增加自身节点信息 

最后一步拷贝node1节点的群组配置文件到node4/conf

cp node1/conf/group.1.genesis node1/conf/group.1.ini node4/conf

1-2-3-3

这一题让我们先启动节点在验证就可以了

验证 

 可以看到node4的节点与其他4个节点的连接信息,这很对。

子任务1-2-4:区块链网络运维

根据任务描述要求,完成网络配置与管理运维操作,具体内容如下:

1. 设置区块链系统黑名单,将node3设为黑名单禁止连接,并验证;

2. 设置系统中区块打包最大交易数量设为2000;

3. 验证区块最大打包交易数量情况。

1-2-4-1

将node3设置为黑名单,就是说其他的节点不能与node3连接,所以说要在node0、node1、node2、node4的节点配置文件的certificate_blacklist都要加上node3的节点id。这里我只验证了node1节点

验证

由于node1节点添加了node3节点id的黑名单,所以连接的数量从4变为了3。

其他的node0、2、4节点就是重复的操作上述步骤即可。可能node0没有输出信息,这是因为我们之前设置的日志输出等级为waring的原因,要想看到验证的结果再改为info就可以了

1-2-4-2

1-2-4-3

验证

第一套国赛关于运维题目的操作就到这里结束了,整体还算是入门,其中的细节很多, 想要理解透也并非易事。有错误的地方希望大家指出,共同进步。

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_67362047/article/details/136831273

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--