全国职业技能大赛-区块链技术与应用赛项国赛三卷参考

十套答案详细讨论请留言或私信

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

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

  1. 根据题干描述使用Visio或是思维导图工具展现本系统的系统架构图,分为业务平台和支撑平台两个部分。

参考答案:

  1. 根据题干中描述内容,设计总体功能结构图

参考答案:

1.用户模块包括用户注册与登录功能,注册功能用于实现用户数据插入。用于实现合约的准入机制,提高合约的安全性。

2.资产模块包括新增、修改、交易、删除与查询模块。其中增删改查功能用于支撑区块链应用的实现,交易功能实现资产所有权的换绑。

3.能源模块包括新增、修改、交易、删除与查询模块。其中增删改查功能用于支撑区块链应用的实现,交易功能实现用于绑定能源信息的变化与订单记录。

  1. 根据题干中描述内容,完善“系统概要设计说明书.doc”具体工作内容如下:
    1. 将设计内容根据说明书模块需求进行补充,并完善概要设计说明书中的“需求概要”
    2. 完善说明书中接口说明部分内容

参考答案:

    参照“系统概要设计说明书的答案.doc”文档中内容

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

围绕新能源管理区块链平台部署与运维需求,进行项目相关系统、节点以及管理工具的部署工作。通过通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维护,具体要求如下:

  1. 根据参数与端口设置要求,部署区块链系统并验证;
  2. 根据参数与端口设置要求,部署区块链网络管理平台并验证;
  3. 基于区块链系统相关管理平台,按照任务指南实施系统运维工作并验证。
  4. 基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管。

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

参照ipconf文件搭建区块链系统,要求在系统中包括3个独立组织以及6个节点,网络拓扑为星型网络,并且在联盟链中需实现2个数据隔离场景(group1、group2),节点可根据具体业务加入不同的业务场景。具体工作内容如下:

  1. 使用给定工具(地址“/root/tools”),配置区块链系统。
  2. 启动区块链系统全部节点并验证启动情况。
  3. 检查节点的连接状态以及所属场景的共识状态。

参考答案:

命令:bash build_chain.sh -f ipconf -e ./fisco-bcos -p 30300,20200,8545 -v 2.8.0

2. 启动区块链系统全部节点并验证启动情况。

参考答案:

(1)命令: bash nodes/127.0.0.1/start_all.sh

(2)检查全部节点进程全部启动情况

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

3. 检查节点的连接状态以及所属场景的共识状态。

参考答案:

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

命令: tail -f nodes/127.0.0.1/node1/log/* | grep "g:2.*+++"

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

基于给定服务器环境、软件以及工具(地址“/root/tools”),构建区块链系统相关控制台,并通过控制台实现相关系统管理,具体工作内容如下:

  1. 使用给定工具,配置控制台证书。

参考答案:

命令: tar -zxf console.tar.gz

命令: cp -n console/conf/config-example.toml console/conf/config.toml

  1. 使用给定工具,以pem加密方式创建3个区块链账户(Account1、Account2、Account3)。

参考答案:

使用bash get_account.sh创建三个账户。

  1. 使用给定工具,通过Account1登录控制台,并查看区块高度。

参考答案:

使用命令:

./start.sh 1 -pem accounts/0x3f76b7db3a121e3b298228262c971483db3213df.pem

查看区块高度

  1. 使用给定工具,通过Account2登录控制台,并查看共识状态。

参考答案:

查看共识状态

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

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

  1. 获取node3的节点ID

参考答案:

命令:cat nodes/127.0.0.1/node3/conf/node.nodeid

  1. 启动控制台,在group1中移除node3节点

参考答案:

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

(2) 查看共识节点:命令:getSealerList (此时有5个共识节点)

(3) 移除node3结点:

命令:removeNode 43bb7946657843b16fe2b92a1e3cbf3ec4e4f5dc5067a6803bd2b8e1a09b6d8898999357058b62cb3fb887ff3cf6f93bbec9ccee8199d3d770b55b4b69c71fe6

  1. 检查node3节点共识状态日志

参考答案:

命令:tail -f nodes/127.0.0.1/node4/log/log*  | grep +++ (此时无输出)

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

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

  1. 生成新节点(node4),启动并检查

参考答案:

使用gen_node_cert.sh生成新节点node4

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

将新节点node4复制到节点群nodes目录下。

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

  1. 修改新节点配置,并查看节点的nodeid

参考答案:

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

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

(2)修改node4/config.ini。

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

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

命令:vi node4/config.ini

获取新节点ID

命令:cd node4  && cat conf/node.nodeid

  1. 将新节点作为观察节点加入group1当中,并检查是否加入成功

参考答案:

(1)复制群组配置信息

节点4拷贝节点1的node1/conf/group.3.genesis(内含群组节点初始列表)和node1/conf/group.3.ini到node4/conf目录下,不需改动

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

(2)启动新节点node4

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

检查新节点连接情况

  1. 将区块打包最大交易数量设为2000笔。

参考答案:

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

(2)设置区块打包最大交易数量为2000

命令: setSystemConfigByKey tx_count_limit 2000

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

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

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

参考答案:

命令: python3 deploy.py startAll

  1. 使用可视化一体平台,创建user3用户,部署新能源管理合约,调用合约注册功能(account_register),将user3进行注册为“用户”并获取正确返回。

参考答案:

使用平台调用合约,进行如下设置:

设置后进行调用获得如下正确反馈:

  1. 使用可视化一体平台,调用新能源管理合约judgeUserRole功能,验证注册情况。

参考答案:

使用平台调用合约,进行如下设置

  1. 参照工程项目(地址:“/root/projects”)使用Caliper测试工具对新能源管理系统智能合约太阳能板能源信息新增(Energy_insert)功能进行压力测试。具体要求如下:
    1. 提供核心测试代码。

参考答案:

config.yaml:

energyInsert.js

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

参考答案:

执行命令:

npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/newenergy/config.yaml  --caliper-networkconfig networks/fisco-bcos/test-nw/fisco-bcos.json

正确执行结果:

report.html

  1. 智能合约安全漏洞测试。

有如下问题智能合约:

pragma solidity ^0.8.3;

contract EtherGame {

    uint public targetAmount = 7 ether;

    address public winner;

    function deposit() public payable {

        require(msg.value == 1 ether, "You can only send 1 Ether");

        uint balance

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值