2025年广东省职业院校技能大赛高职组“区块链技术应用”竞赛试题(三)

2025年广东省职业院校技能大赛高职组"区块链技术应用"竞赛试题(三)

文章目录

  • 2025年广东省职业院校技能大赛高职组"区块链技术应用"竞赛试题(三)
    • [模块一:区块链产品方案设计及系统运维(35 分)](#模块一:区块链产品方案设计及系统运维(35 分))
      • [任务 1-1:区块链产品需求分析与方案设计](#任务 1-1:区块链产品需求分析与方案设计)
      • [任务 1-2:区块链系统部署与运维](#任务 1-2:区块链系统部署与运维)
      • [任务 1-3:区块链系统测试](#任务 1-3:区块链系统测试)
    • [模块二:智能合约开发与测试(40 分)](#模块二:智能合约开发与测试(40 分))
      • [任务 2-1:智能合约设计](#任务 2-1:智能合约设计)
      • [任务 2-2:智能合约开发](#任务 2-2:智能合约开发)
      • [任务 2-3:智能合约测试](#任务 2-3:智能合约测试)
    • [模块三:区块链应用系统开发(20 分)](#模块三:区块链应用系统开发(20 分))
    • [任务 3-1:区块链应用前端功能开发](#任务 3-1:区块链应用前端功能开发)
      • [任务 3-2:区块链应用后端功能开发](#任务 3-2:区块链应用后端功能开发)
    • 需要培训可联系博主!

🔷博主介绍

致力于网络安全(漏洞挖掘、攻防实战)、Linux 内核系统(底层原理与性能调优)、区块链技术(Web3 安全与智能合约审计)、Python 语言应用(自动化攻防工具开发)、软件开发(全栈安全开发)等新一代信息技术领域的技术研究与干货分享,坚持以极简篇幅承载硬核知识的创作理念,为技术爱好者提供高效、深度、可落地的阅读体验。CSDN认证网络安全领域优质创作者 、网络安全博客专家认证 、阿里云专家博主

🌐各大技术专栏推荐

专栏名称 专栏介绍
网络安全攻防之道 为网络安全从业者、白帽黑客与技术爱好者打造的攻防知识阵地。深度剖析漏洞利用与防御的技术细节,实战演练渗透测试全流程,输出可落地的攻防策略,陪你在攻防对抗中持续进阶。
Linux 系统运维:从底层原理到企业级实战 这里是 Linux 系统运维的实战修炼场:从系统初始化到高可用架构,从命令行魔术到自动化运维利器,深度拆解 CentOS/Ubuntu 在企业级业务、云原生环境中的运维密码。带你穿透系统底层逻辑,掌握性能调优、故障秒级定位、自动化脚本开发的硬核技能,进阶成为能扛住业务压力的 Linux 运维专家
【VulnHub 靶场攻防】从漏洞复现到实战渗透 不管你是刚入门的渗透新人,还是想强化实战能力的安全工程师,都能在这儿找到匹配的靶场练手项目。我们聚焦可复现的漏洞利用技巧,结合 Nmap、Metasploit、BurpSuite 等工具实战演示,帮你把靶场经验转化为真实渗透能力,一步步成长为能在实战中 "打怪升级" 的渗透高手
博主年度总结与收获 这里是旺仔 Sec 的创作成长日记!作为 CSDN 认证的网络安全优质创作者,我把每一年的技术深耕、创作思考、成长突破都浓缩在这儿 ------ 从漏洞分析的技术沉淀,到内容创作的经验复盘,再到从工程师到博主的身份进阶,每一篇总结都是 "技术探索 + 创作感悟" 的双料干货

🤵‍♂️ 个人博客主页: @旺仔Sec的博客主页

WeChat公众号:鹏璃安全

✍🏻 博主身份:网络安全兼技能大赛工程师(NISP、CISP、华为IE、IP、redhat、软考等职业证书报考可找我报考!)

🐋 希望大家多多支持,我们一起进步!😄

如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注(各大技能大赛参考答案链接如下)

🖥️:软件测试技能大赛参考答案

🙌:软件测试---单元自动化接口测试参考答案

👻:区块链技术应用技能大赛参考答案

🚀:大数据应用开发职业院校竞赛答案参阅

🔎:GZ100移动应用设计与开发参考答案

✍:GZ031应用软件系统开发参考答案

☠:网络安全职业技能大赛任务解析

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

选手完成本模块的任务后,将任务中软件建模图、配置文件、运行结果等截图(截图内容清晰且完整)和文字内容粘贴至客户端桌面【工位号文件夹\模块一提交结果.docx】中对应的任务序号下。

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

医疗健康平台中涉及到医院、医生、患者等参与方,他们需要在区块链医疗健康平台中完成账户注册、身份上链、挂号就诊、查询病例等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于医疗健康平台系统架构,以区块链医疗健康平台为背景,结合账户注册、登录服务、入驻上链、查询病例、新建病例等核心功能描述,使用 Visio 绘制用例图、功能图、架构图等概要设计。

本任务需要依据项目背景完成需求分析与方案设计,具体要求如下:

1.根据项目给定的背景描述和医疗健康平台业务概览图,对医疗健康平台系统进行分析,完成以下任务:

(1)编写用户群体需求分析,明确系统用户群体及其需求;

(2)绘制系统 UML 用例图,用例图中包含系统参与角色以及用例。

2.依据给定的背景信息、医疗健康平台业务流程图以及给出的医疗健康平台的核心流程,使用 Visio 绘制业务系统功能图;
表 1-1-1 医疗健康平台的核心流程

过往病例检索流程 区块链医疗健康平台对医生的身份证书进行验证,判断医生的身份、查看权限等,验证通过后以当前就诊人 ID 作为关键字进行检索,拉取所有的过往病例
新建病例流程 区块链医疗健康平台将对医生的身份证书进行验证,判断医生的身份、写入权限等,验证通过后可以新建病例,并签名加密广播到区块链

3.按照基础层、合约层、接口层以及应用层的结构来设计区块链系统的架构,其中在基础层需指明需要的节点、名称、协议、存储等信息,使用 Visio 绘制系

统架构图。

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

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

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

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

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

4.基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管。子任务 1-2-1: 搭建区块链系统并验证

基于给定的虚拟机环境 M1-A、M1-B 以及链环境(地址"/root/tools"),搭建如下图所示的双机、三机构、二群组、七节点的星形组网拓扑区块链系统。其中,二群组名称分别为 group1、group2,三个机构名称为 agencyA、agencyB、 agencyC。p2p_port、channel_port、jsonrpc_port 起始端口分别为 30330、20230、 8545,确保搭建的区块链系统能正常运行。

具体工作内容如下:

(1)采用默认配置分别搭建双主机区块链网络;

(2)通过命令分别在 M1-A 和 M1-B 上验证区块链节点进程运行状况;

(3)通过命令分别在 M1-A 和 M1-B 上验证区块链连接状态和共识状态日志输出。

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

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

(1)在 M1-A 主机上面配置控制台,修改配置信息,使用 Console 连接

agencyB 中节点,部署 HelloWorld.sol 智能合约;

(3)使用控制台完成 HelloWorld.sol 智能合约中的 set 与 get 方法操作;

(3)使用机器 M1-A 控制台检查区块链中的当前区块高度以及查看部署合约的交易详情。

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

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

(1)基于服务器中的扩容工具,在机器(M1-B)上进行新节点(Node7)扩容并加入群组 Group1;

(2)使用机器(M1-B)检查扩容完成的区块链节点(Node7)的连接状况以及新节点在群组(Group1)中的共识状态;

(3)修改配置文件,指定 node3 输出等级为警告级,并设置日志存储阈值为 50MB。

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

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

(1)设置区块链系统黑名单,修改 M1-B 的 node7 配置将 node3 设为黑名单,并通过命令检查;

(2)在 M1-A 上将区块链网络中群组 2 的最大交易数量设为 3000;

(3)在 M1-A 上通过控制台检查群组 2 的区块最大打包交易数量。

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

设计对区块链系统的测试流程;结合实际业务需求,调用部署的智能合约进

行系统测试、性能测试等;根据业务需求,分析并且修复给定智能合约中的安全漏洞。利用模拟业务和测试工具来完成对区块链系统服务数据的测试。
子任务 1-3-1:系统测试

在 M1-A 登录 linux 服务器,进入指定操作目录(/root/tools/webase)中完成区块链节点管理器的配置部署,并进行节点接口测试,具体操作任务如下:

(1)完成 webase-node-manager 数据库初始化操作;

(2)修改 application.yml 配置文件,进行 webase-node-manager 服务配置,包括数据库名称,数据库用户,数据库密码等;

(3)使用命令启动 webase-node-manager 管理平台服务,并检查节点管理是否正常启动;

(4)进行节点管理服务的 API 接口(创建 front 对象)测试。子任务 1-3-2:压力测试

基于 M1-A 虚拟机,使用提供的 caliper 素材,进入/root/tools/benchmarks目录下使用 Caliper 测试工具对 HelloWorld.sol 中 set 和 get 功能进行压力测试,具体操作任务如下:

(1)修改 fisco-bcos.json 文件,配置连接节点为 agencyA 的 node0 节点,测试合约为 HelloWorld.sol;

(2)配置进行压测的 js 信息,设置 txNumber=100,tps=1;

(3)提供 set 功能核心测试代码;

(4)提供 get 功能核心测试代码;

(5)执行压测,所有测试通过率为 100%。

模块二:智能合约开发与测试(40 分)

选手完成本模块的任务后,将任务中设计结果、运行代码、运行结果等截图

(截图内容清晰且完整)粘贴至客户端桌面【工位号文件夹\模块二提交结果.docx】中对应的任务序号下。

任务 2-1:智能合约设计

根据区块链医疗健康平台产品需求分析和设计文档的描述,绘制智能合约

UML 时序图,编写该区块链产品的智能合约功能需求文档,具体要求如下:

1.绘制区块链医疗健康平台的智能合约 UML 时序图;

2.结合区块链医疗健康平台项目背景、概要设计、需求分析和功能设计等,编写区块链医疗健康平台的智能合约功能需求文档。

任务 2-2:智能合约开发

使用 Solidity 语言进行智能合约开发,根据需求功能介绍在待补充源码中完成程序接口功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约进行业务功能的验证,下列子任务中的合约编码表示合约中对应接口功能开发。
子任务 2-2-1:信息管理合约功能

根据需求功能介绍在待补充源码中完成信息管理功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约中的检索个人信息、信息管理接口功能,其中涉及的字段信息包括姓名、性别、年龄、账户地址。

1.编写检索个人信息接口,完成患者通过身份证号检索其姓名、性别、年龄的功能,代码截图保存;
表 2-2-1 Sick 实体说明

名称 说明
name 姓名
sex 性别
age 年龄
accountAddress 账户地址

2.编写信息管理接口,完成允许患者与医院和科室进行信息管理,通过身份证号检索到患者的个人信息,将预约信息显示给患者,代码截图保存。
子任务 2-2-2:病历管理合约功能

根据需求功能介绍在待补充源码中完成病历管理功能的编码,解决代码错误和警告,正确编译合约,功能调试正确。

1.编写新建病历接口,实现检索病人对应科室既往病历,授权医生查看,如果没有既往病历则创建一个新的病历功能,代码截图保存;
表 2-2-2 MedicalRecord 实体说明

名称 说明
patientID 病人 ID
hospitalName 医院名称
department 科室
doctorName 医生姓名
registrationInfo 信息管理信息
pastMedicalHistory 既往病史
currentMedicalHistory 现病史
isFilled 是否填写完毕

2.编写结束就诊接口,实现检查病历是否已经填写,并结束病历咨询的功能,代码截图保存。
子任务 2-2-3:病历查看功能编码

根据需求功能介绍在待补充源码中完成病历查看功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,其中涉及的字段包括病人姓名、病人年龄、病人个人信息、病人病史、病人病情描述

1.编写查看病人病情描述接口,实现获取指定病人病情描述功能,代码截图保存。

任务 2-3:智能合约测试

子任务 2-3-1:基于 Web 前置平台的合约测试

1.解决代码错误和警告,正确编译所有合约并部署合约,成功获取部署的合约地址和 abi,智能合约地址截图,abi 文件命名为【智能合约.abi】并保存至客户端桌面【工位号文件夹】下;

2.使用 WeBASE 调用任务 2-2 中所有需要补全代码的智能合约接口进行测试,运行结果截图。
子任务 2-3-2:漏洞测试有如下问题智能合约:

合约一:

bash 复制代码
pragma solidity ^0.4.25; contract ExternalService {
function performAction() public returns (bool) {

return true;
}
}

合约二:

bash 复制代码
pragma solidity ^0.4.25;
import "./ExternalService.sol"; contract VulnerableContract {
mapping(address => uint8) public balances; address public admin;
uint public lastUpdateTime;
ExternalService public externalService;

constructor(address _externalService) { admin = msg.sender;
externalService = ExternalService(_externalService); lastUpdateTime = block.timestamp;
}

// 只有管理员可以调用的存款函数
function adminDeposit(address _user, uint8 _amount) public { require(msg.sender == admin, "Only admin can deposit"); if (block.timestamp - lastUpdateTime <= 1 days) {
require(_amount <= 100, "Can only deposit up to 100 per day");
balances[_user] += _amount; lastUpdateTime = block.timestamp;
}

// 取款函数
function withdraw(uint8 _amount) public {
require(balances[msg.sender] >= _amount); balances[msg.sender] -= _amount;
externalService.performAction();
}

// 获取余额
function getBalance() public view returns (uint8) { return balances[msg.sender];
}
function transferAdmin(address _newAdmin) public { admin = _newAdmin;
}
}

(1)分析以上智能合约中存在的漏洞,并说明其可能造成的危害;

(2)完善攻击函数,基于 webase-front 复现智能合约中存在的漏洞;进行漏洞修复,并验证修复结果,并说明修复内容。

模块三:区块链应用系统开发(20 分)

选手完成本模块的任务后,将任务中添加代码、Web 页面、运行结果等截图粘贴至客户端桌面【工位号文件夹\模块三提交结果.docx】中对应的任务序号下。

任务 3-1:区块链应用前端功能开发

完成区块链应用系统的医疗健康病历页面渲染,完成服务器端(后端)与

Web 端(前端)的接口的联调。要求如下:

(1)在 patientList.vue 中完成我的病历功能按照医疗健康病历详情原型图的长度、宽度、行高、间距、文字样式、颜色等,完成医疗健康病历详情页面的样式开发,将代码和结果截图保存;

(2)完成 Vue 调用医疗健康病历查询接口 API,获取接口返回的姓名、性别、科别、日期等信息,填充至 Vue 页面中,将代码和结果截图保存。

任务 3-2:区块链应用后端功能开发

子任务 3-2-1:获取区块链交易信息

区块链应用系统开发需要区块链底层网络进行支撑,开发链上数据交互功能,实现与节点建立链接,完成链上信息查询。要求如下:

(1)打开(BlockDataProcessor.java)文件,在查询区块链信息接口中,使用 Java-SDK 获取区块链的最新高度和最新交易 Hash,并将结果按十进制的整数和字符串类型返回,代码和返回结果截图保存。
子任务 3-2-2:编写查询医疗健康病历合约接口和数据库设计

(1)根据"查询医疗健康病历合约"中变量的字段,在 Java 项目中声明实体类(MedicalHealthCase),将声明代码结果截图保存;

包含字段:用户姓名(name)、年龄(age)、性别(sex)、科别(category)、时间(time)。

(2)请打开客户端, 连接数据库, 根据声明的实体类, 创建数据库表

(medical_health_case)与表结构字段。
子任务 3-2-3:编写调用查询医疗健康病历合约接口

通过 Java-SDK 完成调用查询医疗健康病历合约接口,获取医疗健康病历信息。要求如下:

(1)接收从 Web 端接收对应各种参数(包括病历编号);

(2)调用 Java-SDK,运行调用智能合约 API,接收医疗健康病历信息传递给前端页面;

(3)医疗健康病历信息查询成功后,将获取到的医疗健康病历信息进行解析,并通过数据库依赖包(mysql-connector-java-bin.jar)存储到数据库中;

(4)使用 postman 测试功能完整性,测试参数和结果截图,查询医疗健康病历合约接口部分代码截图。

需要培训可联系博主!

相关推荐
upper20206 分钟前
【炒股学习】集合竞价
学习·区块链
fuzamei8888 小时前
Chain33 Orderbook:去中心化订单簿的创新架构与实现
架构·去中心化·区块链
Biteagle12 小时前
P2MS:比特币的多重签名机制与比特鹰的技术解析
区块链·智能合约
hopsky13 小时前
区块链中数据的完整处理流程
区块链
Biteagle1 天前
P2TR :比特币的「终极脚本方案」与比特鹰的技术解析
区块链
大千AI助手1 天前
程序合约:形式化验证中的规范与实现框架
分布式·区块链·软件开发·形式化验证·大千ai助手·程序合约·contracts
旺仔Sec1 天前
2025年安徽省职业院校技能大赛(高职组)区块链技术应用赛项样题任务书
区块链·智能合约
旺仔Sec1 天前
2025年安徽省职业院校技能大赛(中职组)区块链技术应用与维护赛项样题
区块链·智能合约
飞凌嵌入式1 天前
AIoT出海背景下,嵌入式主控的国际认证之路与价值思考
大数据·人工智能·嵌入式硬件·区块链·嵌入式
币小路2 天前
WOG如何重塑可信数字金融新范式
区块链