2025河北省职业院校技能大赛高职组“区块链技术应用”任务书卷Ⅲ
2025河北省职业院校技能大赛高职组“区块链技术应用”任务书卷Ⅲ
文章目录
卷Ⅲ
任务
- 第三模块:基于区块链的应用系统开发(满分30分)
-
- 子任务1:基于区块链的应用系统前端功能开发
- 子任务2:基于区块链的应用系统后端功能开发
您好,我是旺仔Sec 为帮助别人少走弯路而写博客。如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😘 ((●’◡’●)) 。想看更多实用文章 那就点个关注吧!! 我会尽力创作并带来有趣的内容 。
我的B站链接:鹏璃Sec
WeChat公众号:鹏璃安全需要竞赛答案等资源可联系我(微信方式在文章最下方!)
感谢您订阅专栏。点赞关注收藏三连文章
背景描述 现实在一定频率中发生患者隐私泄露的情况,在当今社会中这一问题较为普遍。传统的柜式存储与纸张记录手段已不适应现代需求,在此背景下电子化存取方式逐渐成为主流选择。据公开报道,在2015至2016年间有多家美国医院遭到黑客攻击事件导致医疗健康资料被盗取。其中约有15%的数据泄露事件涉及医疗领域,并且这一行业规模已超过次保险业成为全球范围内的第二大高风险领域。此外在这一过程中传统柜式存储与纸张记录手段难以实现不同医疗机构间的高效数据共享,则给患者的就医带来了诸多不便

相信很多人都有重复就医的经历,在一家医院做的检查,换一家医院就需要重新做一次,耗时耗钱不说,还延误病情。如果能把个人的医疗检查记录上传到区块链,在这种智能化的信任机制下,不需要医患之间的相互信任,共享医疗健康数据,安全又便捷。那也就意味着,在一家医院的检查记录,在另一家医院也能受到认可,不必重复检查,这将极大的提升患者的就医效率,减轻医院的工作负担。现有一个医疗健康数据共享平台 S,患者 A 在 S 中输入身份证号后进行挂号,当 A 挂医院 H 科室 C 的号后,S 将挂号信息显示给 A。默认 A 去就诊,不考虑其他情况。当医生 D 在 S 中点击开始就诊后,S 将根据 A 的身份证号查找 A 在C 的过往所有医院的病历资料,如果有过往病历资料,调用 A 在对应科室过往的病历资料,授权 D 查看权限。默认 D 会在 S 中点击新建 A 的病历资料,不考虑其他情况。S 调用 A 在 H 中的挂号信息、就诊医生的信息到新建的病历资料中(需要按照本顺序声明)。D 需要填写病历资料,如果不填写等待填写不能点击就诊结束。当 D 点击就诊结束,D 不可再修改本次病历资料,也不可再查看 A 的病历资料。如果 D 在 12 小时内不点击就诊结束,S 自动结束就诊。A 可以查看自己的病历资料。本案例默认 S 调用的信息真实,不考虑其他情况。

模块一:区块链产品方案设计及系统运维(35分)
工位号文件夹\模块一提交结果.docx
工位号文件夹\模块一提交结果.docx
工位号文件夹\模块一提交结果.docx
完成本模块任务的选手将软件建模图、配置文件以及运行结果的相关截图复制并粘贴至客户端桌面【工位号文件夹\模块一提交结果.docx
任务 1-1:区块链产品需求分析与方案设计
在医疗健康的生态系统中包含了医院机构、专业医师以及患者等多个关键参与方,在区块链技术支持下整合这些主体能够实现高效协同运作。通过分析各业务功能特性能够为系统的优化配置提供理论依据。基于医疗健康的系统架构模型结合用户注册登录服务、资源上链管理以及病例信息查询等功能特点,在Visio软件平台上构建完整的概要设计框架包括用例图和功能模块图等核心组件
本任务要求依据项目背景信息进行需求分析与方案设计
-
对医疗健康的平台系统进行深入分析,请完成以下工作内容: (1)制定详细的用户群体需求清单明确系统的使用范围及预期功能;(2)绘制相应的UML用例图其中包含系统角色及其交互关系
-
根据提供的背景信息和流程图绘制系统的功能架构图
表 1-1-1 医疗健康平台的核心流程

3.遵循基于层次化架构的设计方案来规划区块链系统的各个层级:基础层、合约层、接口层以及应用层。其中,在基础层面需要明确具体的节点名称、协议内容以及存储机制,并利用Visio软件绘制系统架构图。
任务 1-2:区块链系统部署与运维
围绕基于区块链医疗健康的平台部署与运维需求
根据参数配置和指定端口的要求,在主链上实现了系统的正常运行

(1)为构建区块链网络,在ipconf配置文件中进行详细信息设置。
(2)利用命令工具监控并记录各节点运行状态及详细信息。
(3)借助命令工具分析node1的连接数量及共识日志状态。
子任务 1-2-2:搭建区块链控制台并验证
(2)使用控制台采用 CNS 部署合约 HelloWorld 智能合约,部署完成之后使用 CNS 查询合约信息,命令和结果截图;
(3)使用控制台采用 CNS 完成 HelloWorld 智能合约的 set 与 get 操作,命令和结果截图;
(4)将控制台从 group1 切换到 group2,命令和结果截图; 子任务 1-2-3:区块链账户权限控制
基于已完成的区块链系统与控制台搭建工作,开展区块链账户权限管理等运维工作,具体内容如下:
(1)运行脚本创建三个新的账户(格式为 pem),使用账户 1(account1)指定群组 1 登录控制台,添加账户 1(account1)、账户 2(account2)和账户 3(account3) 为委员并验证,过程和结果截图保存;
(2)修改账户 1 的票数为 2 并验证,修改投票阈值为 75%并查询投票情况, 结果截图保存;
(3)撤销账户 3(account3)的委员权限,设置账户 3 为运维角色并验证, 过程和结果截图保存。
子任务 1-2-4:区块链网络运维
根据任务描述要求,完成网络配置与管理运维操作,具体内容如下:
(1)设置区块链系统黑名单,将 node3 设为黑名单禁止并通过控制台验证node3 的 Peers,配置文件和验证结果截图;
(2)通过给定工具(地址/root/tools)完成新节点(node5)创建,将新节点(node5)接入群组 1 和群组 2 并参加共识,通过日志信息验证新节点(node5)已经接入群组 1 和 2,过程和验证结果截图保存;
(3)通过控制台动态创建群组 3,将节点 node5 接入群组 3 中,创建和验证结果截图保存
任务 1-3:区块链系统测试
基于 WeBASE 的部署脚本实现了 WeBASE 环境的搭建及结果验证,并将执行结果进行了截图保存。(1)通过 WeBASE 平台实现部署,在线访问其管理界面并进行了截屏保存。(2)借助 Postman 工具调用 WeBA
OE-Front 的 API 部署了一个任意选择的智能合约,并对操作结果进行了记录。(3)通过 Postman 工具调用其 API 创建了一个新的私钥账户
模块二:智能合约开发与测试(30分)
工位号文件夹\模块二提交结果.docx
工位号文件夹\模块二提交结果.docx
工位号文件夹\模块二提交结果.docx
工位号文件夹\模块二提交结果.docx
任务 2-1:智能合约设计
基于 blockchain 医疗健康 平台 产品 需求 分析 和 设计 文档 的 描述 , 绘 制 相 应 的 智 慧 合 约 UML 时 序 图 , 并 撰 写 相 应 的 智 慧 合 约 功 能 需 求 文 档 。 具体 要 求 如 下 :
- 绘 制 基 于 blockchain 医疗 健康 平 台 的 智 慧 合 约 UML 时 序 图 ;
- 结 合 project 背 景 、概 要 设 计 等 信 息 ,撰 写 相 应 的 智 慧 合 约 功 能 需 求 文 档 。
任务 2-2:智能合约开发
采用 Solidity 语言构建智能合约系统,并根据需求说明在待补充模块中完成相关程序接口的实现。修复代码中的错误与警告信息,并确保合同文件能够顺利编译。通过测试确保合同逻辑正常运行,并通过实际运行测试模块来验证合同的功能是否满足预期目标。下列子任务中的合约编码表示各对应接口功能的具体开发情况。
依据需求功能说明,在待补充源码中完成信息管理功能的编码工作。该工作需涵盖以下几方面:一是排查并修复代码中的错误与警告;二是确保合约为其代码实现正确无误;三是通过调试过程达到预期目标;四是运行合约中的检索个人信息及信息管理接口功能,并将相关操作截图保存;五是开发并实现信息管理接口功能的具体模块,并保证其稳定运行。其中涉及的关键字段包括:姓名、性别、年龄以及账户地址等必要信息。具体而言需完成以下几项任务:1. 实现患者通过身份证号检索其姓名、性别、年龄的功能,并将相关截图保存;2. 同时开发并实现信息管理接口功能的具体模块,并保证其稳定运行。
表 2-2-1 Sick 实体说明


- 开发信息管理模块,在系统中实现患者与医院及科室之间的信息交互功能。系统可通过身份证号快速定位到患者的详细信息,并向患者展示预先安排好的日程安排。所有操作过程可被截图并保存作为记录。
子任务 2-2-2:病历管理合约功能
依据需求文档,在补充的源代码中实现相应的病历管理功能,并修复出现的代码错误或警告提示。 - 开发新建病历创建接口...用于获取病人所属科室的历史病历记录;当未发现病人对应科室的历史记录时,则启动新系统创建新的病历文件,并保存相关操作截图作为验证依据。
表 2-2-2 MedicalRecord 实体说明

开发完成就诊终端接口,并对现有病历信息进行完整性校验及关闭相关问答服务功能。具体操作包括:生成截图并存储在指定文件夹中。依据需求文档,在待完善源码中实现病历信息浏览模块。该模块需完成以下功能:1. 读取病人基本信息(姓名、年龄、个人信息);2. 查看详细病史记录;3. 显示当前病情描述摘要;4. 实现基础数据验证逻辑。在此过程中需修复程序运行时出现的问题,并确保程序能够顺利编译通过。测试所有功能均达到预期目标
开发用于查看病人病情描述接口,并实现为指定病人提供病情描述功能;将代码截图保存下来
任务 2-3:智能合约测试
子任务 2-3-1 区块链系统压力测试
子任务 2-3-2:漏洞测试
分析下面漏洞智能合约,如下有问题的合约代码:
pragmasolidity^0.4.25;
contractUserManagement{
structUser{
stringname;
uintage;
uintpoints;
}
addresspublicowner;
mapping(address=>User)publicusers;
constructor()public{
owner=msg.sender;
}
modifieronlyOwner(){
(msg.sender==owner,“Nottheowner”);
_;
}
//创建新用户
functioncreateUser(string_name,uint_age)public{
UsermemorynewUser=User(_name,_age,0);
users[msg.sender]=newUser;
}
//更新用户年龄
functionupdateUserAge(uint_newAge)public{
UsermemorycurrentUser=users[msg.sender];
currentUser.age=_newAge;
}
// 增加用户积分
function addPoints(uint _points) public onlyOwner {
User memory currentUser = users[msg.sender];
currentUser.points += _points;
}
// 获取用户积分
function getPoints(address user) public view returns (uint) {
return users[user].points;
}
// 获取用户年龄
function getUserAge(address user) public view returns (uint) {
return users[user].age;
}
}
(1)探讨智能合约中存在的缺陷,并阐述其漏洞产生的根源及其对系统的影响;
(2)完成智能合约漏洞的解决工作,并提供具体的修复情况的截图。
模块三:区块链应用系统开发(30分)
工位号文件夹\模块三提交结果.docx
工位号文件夹\模块三提交结果.docx
工位号文件夹\模块三提交结果.docx
当选手完成本模块的任务后,在任务中添加代码、Web页面、运行结果等截图,并将它们复制并粘贴至客户端桌面【工位号文件夹\模块三提交结果.docx
任务 3-1:区块链应用前端功能开发
区块链应用系统的医疗健康病历页面开发已实现,并完成了服务器端与Web端数据对接测试工作。具体要求如下:
- 在 patientList.vue 文件中按照医疗健康病历详情原型图的具体尺寸参数(如长度、宽度等)、字体样式及配色方案进行设计与开发;完成后需提交完整代码文档并附上运行结果截屏;
- 通过调用医疗健康病历查询服务端接口 API, 获取并解析-interface 返回的数据项包括患者姓名字段值及其对应性别字段值等相关信息,并将其完整加载至Vue页面中;完成后需提交完整代码文档并附上运行结果截屏。

任务 3-2:区块链应用后端功能开发
任务 3-2-1:区块链数据签名
子任务 3-2-2:编写查询医疗健康病历合约接口和数据库设计
子任务 3-2-3:编写调用查询医疗健康病历合约接口
