目录

2023-10-06-2023年区块链职业技能大赛区块链应用技术一模块一

2023年区块链职业技能大赛——区块链应用技术(一)模块一

模块一 :区块链产品方案设计及系统运维:

任务1-1:区块链产品需求分析与方案设计

1.依据给定区块链食品溯源系统的业务架构图,对考题进行业务分析,可能多的去考虑一个业务系统所需要的模块,使用Visio或思维导图工具展现本系统的基本设计概念和处理流程,要求分为区块链食品溯源业务平台和支撑平台两个部分;

参考答案:略

2.据描述,设计区块链系统的总体功能概览图.

参考答案:略

3.整合上述设计内容,完善"01系统概要设计说明书.doc",具体工作内容如下:

⚪将设计内容根据说明书中模块需要进行补充,并完善概要设计说明书中的"需求概要"

⚪完善说明书中接口说明部分内容

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

1.根据参数与端口设置要求,部署区块链系统并验证;

2.根据参数与端口设置要求,部署区块链网络管理平台并验证;

3.基于区块链系统相关管理平台,按照任务指南实施系统运维工作并验证。

4.基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管.

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

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

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

参考答案:

(1)配置网络

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

输出: https://i-blog.csdnimg.cn/blog_migrate/186931649b6e3fde91e8d29950a6f329.png

(2)启动节点:

命令:bash nodes/127.0.0.1/start_all.sh

输出:

https://i-blog.csdnimg.cn/blog_migrate/3bf5a4c74aeea46c835c953be52be8f5.png

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

参考答案:

命令: ps -ef | grep -v grep | grep fisco-bcos

输出:

https://i-blog.csdnimg.cn/blog_migrate/fa48023a8415e2a4243f1622935944d9.png

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

参考答案:

命令: tail -f nodes/127.0.0.1/node0/log/log* | grep connected

输出:

https://i-blog.csdnimg.cn/blog_migrate/338f36a709e9fd39b0a8e68a3bcb9ea0.png

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

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

1.配置可视化平台,管理相关证书并启动

参考答案:

(1)配置控制台证书.

命令: cp -n console/conf/config-example.toml console/conf/config.toml && cp -r nodes/127.0.0.1/sdk/* console/conf/

输出:

https://i-blog.csdnimg.cn/blog_migrate/fb9b869dc9c60ef3de7ea32c05e69b6b.png

(2)启动控制台

命令: cd console && bash start.sh

输出:

https://i-blog.csdnimg.cn/blog_migrate/d74ef060e91ad58e9812ca505a2901fb.png

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

参考答案:

命令: deploy HelloWorld

输出:

https://i-blog.csdnimg.cn/blog_migrate/67c9129e912e37bcad9716fb4e59f9ce.png

3.使用控制台完成HelloWorld智能合约的set和get

参考答案:

(1)调用set操作

命令: call HelloWorld 0x26255782cf37d290a00efaa4ca1201b1ff9be081 set “Hello,Blockchain”

(2)调用get操作

命令:call HelloWorld 0x26255782cf37d290a00efaa4ca1201b1ff9be081 get

输出:

https://i-blog.csdnimg.cn/blog_migrate/349495b1c06d1a28c17d0c079cdeb3f1.png

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

参考答案:

命令:getBlockNumber

输出:

https://i-blog.csdnimg.cn/blog_migrate/e2af949c971ca7706cd05d384de35468.png

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

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

1.获得区块链节点输出登记为警告级,并设置日志存储阈值为100MB并验证

参考答案:

(1)修改配置文件: vi node0/config.ini

https://i-blog.csdnimg.cn/blog_migrate/81c60633a48b21401f8d58f38568568a.png

(2)重新启动节点node0,使配置文件生效

命令:bash node0/stop.sh && node0/start.sh

输出:

https://i-blog.csdnimg.cn/blog_migrate/ff963ee9cbf94449013d3d8ebefca947.png

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

参考答案:

(1)使用gen_node_cert.sh 生成新节点node4

命令: bash gen_node_cert.sh -c nodes/cert/agency- o node4

输出:

https://i-blog.csdnimg.cn/blog_migrate/88f342ebfb972dc8c8fc78fd885fbfa1.png

(2)将新节点node4 复制到节点群nodes目录下

命令:cp -r bash ./node4 nodes/127.0.0.1/

输出:

https://i-blog.csdnimg.cn/blog_migrate/cc2fa9dd7005c59db2c5107d2b09a69e.png

(3)将新节点node0的文件复制到节点群node4目录下

命令:cd nodes/127.0.0.1/ && cp node0/config.ini node0/start.sh node0/stop.sh node4/

输出:

https://i-blog.csdnimg.cn/blog_migrate/2a7ab764302ea6eb63ad1fe9119ad341.png

(4)修改node4/config.ini

对于[rpc]模块,修改 channel_listen_port和jsonrpc_listen_port;

对于[p2p]模块,修改listen_port并在node中增加自身节点信息

命令:vi node4/config.ini

输出:

https://i-blog.csdnimg.cn/blog_migrate/a2d47e5aad6316cf2392c9566f3a39fc.png

(5)复制群组配置信息

命令: cp node1/conf/group.1.genesis node4/conf/ && cp  node1/conf/group.1.ini node4/conf

输出:

https://i-blog.csdnimg.cn/blog_migrate/a373bb88fd4cd19564a806a26c3b8403.png

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

参考答案:

命令:cd node4 && bash stop.sh && bash start.sh

https://i-blog.csdnimg.cn/blog_migrate/599559fa4e4372974f4edb8ea7a5818b.png

(2) 检查新节点连接情况

命令:tail -f node4/log/log* | grep P2P

https://i-blog.csdnimg.cn/blog_migrate/0f1051e783738bb75bc71f2c3584f996.png

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

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

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

参考答案:

(1)查看node0节点的连接状态日志(现有4个节点连接)

命令:tail -f node0/log/log* | grep connected

输出:

https://i-blog.csdnimg.cn/blog_migrate/51e0533a1f2bb825d99136b1ac0f46ba.png

(2)编辑节点node0的config.ini文件,将node3加入黑名单里面

命令:vi config.ini

编辑certficate_blacklist,设置node3节点ID为黑名单

https://i-blog.csdnimg.cn/blog_migrate/0f3bd00c5629fca1e694e2c163a2f93d.png

(3)重新启动节点

命令:bash node0/stop.sh && bash node0/start.sh

输出:

https://i-blog.csdnimg.cn/blog_migrate/63d50e6bb785d96154befd3243a6a705.png

(4)查看node0的节点连接状态日志(现有3个节点连接)

命令:tail -f node0/log/log* | grep connected

输出:

https://i-blog.csdnimg.cn/blog_migrate/fca294bf6fe4e9f0b59c50be6fe3fcd7.png

(5)重复操作(1)-(4),验证节点配置数量

https://i-blog.csdnimg.cn/blog_migrate/0c0b46826ce8fa3479dae343efd2c763.png

(6)重复操作(1)-(4),完成节点node2的配置与验证

https://i-blog.csdnimg.cn/blog_migrate/5da1dc2b7fca1d9ec76c4b4c60a0e090.png

(7)重复操作(1)-(4),完成节点node4的配置与验证

https://i-blog.csdnimg.cn/blog_migrate/7121c63ee5eb0e3c5c6f5bda0580a505.png

2.设置系统中区块打包数量为2000

参考答案:

(1)启动控制台:命令:bash start.sh

https://i-blog.csdnimg.cn/blog_migrate/4e702ca342492f84f50741514d163093.png

(2)设置区块打包数量为2000

命令:setSystemConfigByKey tx_count_limit 2000

输出:

https://i-blog.csdnimg.cn/blog_migrate/3cec140270b86f68acfb18a493b568aa.png

3.验证区块打包数量

参考答案:

命令:getSystemConfigByKey tx_count_limit

输出:

https://i-blog.csdnimg.cn/blog_migrate/d3ee46b6e6ed42a61f47917336f154da.png

任务1-3:区块链系统测试

设计对区块链系统的测试流程,结合实际业务需求,调用部署的智能合约中进行系统测试,性能测试等;根据业务需求,分析并且修复给定智能合约中的安全漏洞.利用模拟业务和测试工具来完成对区块链系统服务数据的测试.

1.使用命令启动区块链系统可视化一体平台并验证启动情况

参考答案:

命令:python3 deploy.py startAll

https://i-blog.csdnimg.cn/blog_migrate/1395a7059ec1956794228a8974ae4260.png

实现基于浏览器测试启动情况验证(访问地址http://{服务器IP}:5000)

2.通过可视化平台生成包括生产商(producer)、经销商(distributor)、零售商(retailer)账户,并将账户以p12加密形式导出后倒入指定前置可视化平台,验证地址一致性.

参考答案:

(1)验证producer地址的一致

(2)验证distributor地址的一致

(3)验证retailer地址的一致

3.使用postman对上述功能接口进行验证,并进行验证结果截图提交工程文档.

  1. ⚪对食品安全溯源系统服务端“添加食品”(/produce)功能接口进行验证,并将验证结果截图提交工程文档
请求路由:/produce
请求方法:POST
输入项说明:输入项类型说明traceNumberString追踪编号
输出项说明:输出项类型说明retInterger返回值

参考答案:

使用Postman正确操作如下:

https://i-blog.csdnimg.cn/blog_migrate/4515a009a931eb495fd19eab7b646cb0.png

4.  参照工程项目(地址: “/root/projects”)使用Calipers测试工具对食品安全溯源系统智能合约生成新食品(newFood) 功能进行压力测试。具体要求如下:

⚪  提供核心测试代码。

参考答案:

(1)config.yaml 核心代码

https://i-blog.csdnimg.cn/blog_migrate/aa479c4d33014612d350eb48df9d1d55.png

(2)newFood.js核心代码

https://i-blog.csdnimg.cn/blog_migrate/b1ad4a83770c345b2b41c3cea7b5c142.png

⚪ 设置txNumber=10,tps=1,所有测试通过率为100%

参考答案:

命令:npx caliper benchmark run –caliper-workspace caliper-benchmarks –caliper-benchconfig benchmarks/samples/fisco-bcos/trace/config.yaml –caliper-networkconfig networks/fisco-bcos/test-nw/fisco-bcos.json

输出:

https://i-blog.csdnimg.cn/blog_migrate/e027a1c86f5be1b3d38f9077676d98ad.png

report.html

https://i-blog.csdnimg.cn/blog_migrate/ff8fa24c2d3d45285718a7d765209f60.png

5.智能合约安全漏洞测试.

参考答案:略

6874747073:3a2f2f626c6f672e6373646e2e6e65742f4c75636b7953372f:61727469636c652f64657461696c732f313333353738343434