首页 > 其他分享 >2024年江西省职业院校技能大赛 区块链技术应用赛项竞赛样题

2024年江西省职业院校技能大赛 区块链技术应用赛项竞赛样题

时间:2024-09-25 15:50:26浏览次数:10  
标签:截图 账户 赛项 职业院校 address 区块 合约 养老保险 样题

2024年江西省职业院校技能大赛 区块链技术应用赛项竞赛样题

文章目录

背景描述
养老保险是对于老年人的最基本的生活保障。各种数据显示,当前的养老金市场规模庞大。2016年美国的养老金资产总额为19.1万亿美元;而据估计,截至2016年,全球养老金资产总额约为36万亿美元。美国是最大的养老保险市场,其占全球份额为62%;其次是英国(7.9%)和日本(7.7%)。然而,养老保险市场在各个方面存在诸多缺陷,往往会对个人造成负面影响。常见的问题包括治理不善和糟糕的绩效管理,以及在养老金缴纳过程中出现问题(因为没有标准的过程,其流程容易出现隐藏的成本、糟糕的数据管理,甚至是养老金欺诈 )

在这里插入图片描述

区块链养老保险平台业务流程图
现有一个基于区块链的职工养老保险平台,当工作单位U参保人P办理职工基本养老保险时,参保人所在的工作单位在养老保险管理平台S输入个人身份证号,S从公安部门调取P的基本信息,从劳动部门L调取P的工作单位信息、工作时间、工资,从城市A的社保局N上调取城市A的缴费基数,根据调取的信息生成养老保险账户。参保人P可以拥有多个工作单位,但S只允许一个工作单位为其缴纳养老保险费用,如果有其他工作单位为其缴纳,需要其他工作单位进行减员操作才可以进行缴费。城市A规定每月P的个人缴费比例为8% ,称为个人账户,U的缴费比例为19%,称为统筹账户。城市A的缴费基数上限为24000元,下限为3200元。工作单位通过S将统筹账户的费用支付给N,P个人账户的缴费也由本公司代缴。若工作单位未在30天内缴纳费用,L追究其公司的法律责任。P月工资为25000元,则需要个人账户每月缴纳2000元,统筹账户缴纳4750元。当P在S中申请将养老保险关系从城市A转移到城市B时,S将授权城市B的社保局M调取P的养老保险账户,M依据U是否办理停缴手续来判断是否符合转移条件。如果U未办理停缴手续则复核失败。如果复核成功,则N将P的养老保险账户、全部个人账户基金和全部统筹账户基金转移到M。M建立P的参保档案,在S中接收个人账户基金、统筹账户基金、养老保险账户转移。最终将复核数据、转移数据和接收数据存储在S中,方便以后调用。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e8f6ecee254b4eeb8917284dc8098ad3.png)
区块链养老保险平台系统架构图

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

选手完成本模块的任务后,将任务中设计结果、运行代码、运行结果等截图粘贴至客户端桌面【区块链技术应用赛\重命名为工位号\模块一提交结果.docx】中对应的任务序号下。
任务1-1:区块链产品需求分析与方案设计
养老保险平台中涉及到参保人、社保局、公安局、工作单位等参与方,他们需要在区块链养老保险平台中完成账户注册、身份上链、社保代缴、信息核查等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于养老保险平台系统架构,以区块链养老保险平台为背景,结合账户注册、登录服务、入驻上链、保险转移、社保代缴等核心功能描述,撰写流程图/功能图、用例图等概要设计。

本任务需要依据项目背景完成需求分析与方案设计,具体要求如下:
1.根据项目给定的背景描述和养老保险平台业务概览图,对养老保险平台进行分析,完成以下任务:
(1)编写用户群体需求分析,明确系统用户群体及其需求;
(2)绘制系统UML用例图,用例图中包含系统参与角色以及用例。
2.依据给定的背景信息、养老保险平台业务流程图以及给出的区块链养老保险平台的核心流程,使用Visio编制业务系统功能图;

表1-1-2 养老保险平台的核心流程
缴纳养老保险流程区块链养老保险平台根据缴费标准生成缴费协议,对协议合约进行平台签名,将协议代码广播到区块链。获取参保人工资数据,判断费用额度。
保险关系转移流程区块链养老保险平台将参保人身份进行验证、参保关系、停缴状态进行核查,符合则进入保险关系转移流程,向参保人保险账户、账户基金等进行转移
  1. 按照基础层、合约层、接口层以及应用层来设计区块链系统的架构,画出系统架构图,其中在基础层需指明需要的节点、名称、协议、存储等信息;使用Visio绘制系统架构图。

任务1-2:区块链系统部署与运维
围绕区块链食品安全溯源平台部署与运维需求,进行项目相关系统、节点以及管理工具的部署工作。通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维护,具体要求如下:
1.根据参数与端口设置要求,部署区块链系统并验证;
2.根据参数与端口设置要求,部署区块链网络管理平台并验证;
3.基于区块链系统相关管理平台,按照任务指南实施系统运维工作并验证;
4.基于区块链系统相关监管工具,按照任务指南对区块链系统进行监管。
子任务1-2-1: 搭建区块链网络并验证
基于给定服务器环境以及软件(地址“/root/tools”),搭建单机、单机构、两群组、五节点的区块链系统并验证,具体工作内容如下:

机构群组节点P2P 端口channel端口rpc 端口
agencygroup1node0、node1、node230200202008020
agencygroup2node3、node430300203008030
区块链网络搭建信息表

(1)根据区块链网络搭建信息表编写ipconf配置文件搭建区块链网络,ipconf文件内容和创建过程的输出结果截图保存;
(2)通过命令验证区块链节点进程运行状况,结果截图;
(3)通过命令验证区块链节点(node1)连接节点数和共识状态日志输出,结果截图。

子任务1-2-2:搭建区块链控制台并验证
基于给定服务器环境以及软件(地址“/root/tools”),搭建区块链控制台并开展相关运维工作,具体工作内容如下:
(1)配置控制台,管理相关证书并启动,控制台启动结果截图;
(2)使用控制台部署HelloWorld智能合约,命令和结果截图;
(3)使用控制台完成HelloWorld智能合约的set与get操作,命令和结果截图;
将控制台从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)在群组1中将node1设置为观察节点,验证结果并截图。
任务1-3:区块链系统测试
基于WeBASE的部署脚本完成WeBASE环境搭建以及搭建结果验证, 最后将执行结果截图保存。
(1)实现WeBASE平台部署,访问WeBASE管理平台首页,截图保存;
(2)使用WeBASE-Sign进行对数据E7ADBEE5908D进行签名,结果截图;
(3)使用WeBASE-Front查询机器历史性能信息,结果截图。
在这里插入图片描述

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

选手完成本模块的任务后,将任务中设计结果、运行代码、运行结果等截图(截图内容清晰且完整)粘贴至客户端桌面【工位号文件夹\模块二提交结果.docx】中对应的任务序号下。
任务2-1:智能合约设计
根据区块链养老保险平台需求分析和设计文档的描述,绘制智能合约UML时序图,编写该区块链产品的智能合约功能需求文档,具体要求如下:
1.绘制区块链养老保险平台的智能合约UML时序图;
2.结合区块链养老保险平台项目背景、概要设计、需求分析和功能设计等,编写区块链养老保险平台的智能合约功能需求文档。
任务2-2:智能合约开发
使用Solidity语言进行智能合约开发,根据需求功能介绍在待补充源码中完成程序接口功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约进行业务功能的验证,下列子任务中的合约编码表示合约中对应接口功能开发。

子任务2-2-1:个人账户管理功能
根据需求功能介绍在待补充源码中完成账户管理功能的编码,解决代码错误和警告,正确编译合约,功能调试正确。

  1. 编写个人账户结构体,完成姓名、年龄、雇主、开始日期、工资、缴费基数,将人员信息进行综合存储功能,代码截图保存。
表2-2-1 PensionAccount 实体说明
名称说明
name姓名
age年龄
Id身份证号码
employer雇主
joiningDate工作时间
salary工资
contributionBase缴费基数

子任务2-2-2:雇主账户管理功能
根据需求功能介绍在待补充源码中完成账户管理功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,编写雇主账户结构体、添加新雇主账户。

表2-2-2 EmployerAccount雇主账户实体说明
名称说明
companyName单位名称
balance余额

1.编写雇主账户结构体,代码截图保存;
2.编写添加新雇主账户接口,实现当账户不存在,只有管理员可以添加雇主账户,雇主新账户中账户余额为0,代码截图保存。
子任务2-2-3:保险转移功能
根据需求功能介绍在待补充源码中完成保险转移功能的编码,解决代码错误和警告,正确编译合约,功能调试正确,运行合约中的申请转移关系、接收账户转移接口。

表2-2-3 Application 实体说明

在这里插入图片描述
在这里插入图片描述
1.编写申请转移关系接口,实现创建申请、添加到申请列表功能, 其中创建申请需要设置申请人地址、原城市、目标城市、停缴状态、 批准状态,代码截图保存;
2.编写接收账户转移接口,实现获取账户,进行账户授权状态、 接收状态、个人账户基金、统筹账户基金、养老保险账户的信息设置, 代码截图保存。

任务2-3:智能合约测试
子任务2-3-1:基于Web前置平台的合约测试
1.解决代码错误和警告,正确编译所有合约并部署合约,成功获取部署的合约地址和abi,智能合约地址截图,abi文件命名为【智能合约.abi】并保存至客户端桌面【工位号文件夹】下;
2.使用WeBASE调用任务2-2中所有需要补全代码的智能合约接口进行测试,运行结果截图。
子任务 2-3-2:漏洞测试
分析下面漏洞智能合约,使用WeBASE进行漏洞复现,修复漏洞并使用WeBASE进行验证。
如下有问题的合约代码:

contract SimpleERC20 {
address public owner;
uint public total;
mapping(address => uint) private balances;


event Mint(address,uint);


constructor() public { owner = msg.sender;
}


//bytes(mint_d22vi9okr4w(address)) = 6D696E745F6432327669396F6B723477286164647265737329
function mint_d22vi9okr4w(address _account) public { require(msg.sender == owner);
require(balances[_account]+1000 > balances[_account] && total+1000 >
total);
balances[_account] +=1000;
total +=1000;
emit Mint(_account,balances[_account]);
}


//transfer(address,address,uint256) = 7472616E7366657228616464726573732C616464726573732C75696E7432353629
function transfer(address from,address to,uint amount) public { require(msg.sender==owner);
require(balances[from] >= amount && balances[to] + amount > balances[to]);
balances[from] -=amount; balances[to] +=amount;
}
return balances[_account];
}
}


contract factoryERC20{ address public owner;

constructor() public { owner = msg.sender;
}


function mint(address _token,address _account)public returns(bool){ require(msg.sender == owner);
(bool success, ) = address(_token).call(abi.encodePacked(bytes4(0x00000000), abi.encode(_account)));
}


function createERC20() public returns (address){ SimpleERC20 erc = new SimpleERC20();
return address(erc);
}


function transfer(bytes memory _method ,address _token,address _to, uint
_ammount) public returns(bool){
(bool success, ) = address(_token).call(abi.encodePacked(bytes4(keccak256(abi.encodePacked(_method))), abi.encode(msg.sender, _to, _ammount)));
return success;
}


function getBalance(address _token,address _account) public returns(uint){
SimpleERC20 erc = SimpleERC20(_token); return erc.getBalance(_account);
}
}

(1)分析智能合约中存在问题,并说明导致漏洞的原因及其危害;
(2)通过WeBASE调用智能合约,复现智能合约中存在的漏洞,结果截图;
修复智能合约漏洞并测试,修复结果和测试结果截图。

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

选手完成本模块的任务后,将任务中添加代码、Web页面、运行结果等截图粘贴至客户端桌面【工位号文件夹\模块三提交结果.docx】中对应的任务序号下。
任务3-1:区块链应用前端功能开发
完成区块链应用系统中的职工养老保险申请页面渲染,要求如下:
(1)按照生成养老保险账户原型图的长度、宽度、行高、间距、文字样式、颜色等,完成订单详情页面的样式开发,将结果截图保存;
(2)完成Vue调用添加养老保险账户API,将养老保险账户信息提交至API接口中,web页面和代码截图保存。
在这里插入图片描述
任务3-2:区块链应用后端功能开发
子任务3-2-1: 获取区块链交易信息
区块链应用系统开发需要区块链底层网络进行支撑,完成和链上数据进行交互,并完成链上信息查询。
要求如下:

(1)打开(IndexController.java)文件,查询区块链信息接口。使用Java-SDK获取区块链的最新高度和最新交易Hash,并将结果按十 进制的整数和字符串类型返回,将代码和结果截图保存;
子任务3-2-2: 声明生成养老保险账户实体类和数据库设计
使用Java语言,完成区块链系统数据的存储。要求如下:
(1)根据“账户管理合约”中变量的字段,在Java项目中声明实体类
(PensionAccount),将代码截图保存。
包含字段:个人账户余额(personalBalance)、总账户余额
(overallBalance)、雇主是否为职工的赞助商(isSponsor)、缴费时间
(paymentTimestamp)、参保人姓名(insuredPersonName)、参保人身份证
(insuredPersonIdentityCard)、参保人工作单位(insuredPersonWorkUnit)、工作年限(workingYear)、薪资(salary)、缴费基数(paymentBase)
(2)请打开Navicat Premium 客户端,并连接数据库,根据第1 步声明的实体类,创建数据库表(pension_account)与表结构字段, 建表字段截图保存。
子任务3-2-3: 编写调用账户管理合约添加养老保险账户接口
请使用Java语言,通过Java-SDK完成调用账户管理合约接口,添加养老保险账户。要求如下:
(1)接收从Web端对应各种参数(包括参保人姓名、身份证、工作单位、工作年限、工资、缴费基数);
(2)调用Java-SDK,运行调用智能合约API,接收养老保险账户的钱包地址、账户余额等信息传递给前端页面;
(3)养老保险账户创建成功后,将获取到的钱包信息进行解析, 并通过数据库依赖包(mysql-connector-java-bin.jar)存储到数据库中;
(4)使用postman测试功能完整性,测试参数和结果截图,成调用账户管理合约接口部分代码截图。

需要竞赛资源可私信我或加我微信详细了解!(全套资源)

微信联系方式在文章最底部!!
在这里插入图片描述
在这里插入图片描述

标签:截图,账户,赛项,职业院校,address,区块,合约,养老保险,样题
From: https://blog.csdn.net/qq_50377269/article/details/142466578

相关文章

  • 2024年江西省职业院校技能大赛 高职组 “区块链技术应用” 赛项赛卷(1卷)
    2024年江西省职业院校技能大赛高职组“区块链技术应用”赛项赛卷(1卷)文章目录2024年江西省职业院校技能大赛高职组“区块链技术应用”赛项赛卷(1卷)模块一:区块链产品方案设计及系统运维(35分)模块二:智能合约开发与测试(30分)模块三:区块链应用系统开发(30分)需要竞赛资源可......
  • 全新改版!全国职业院校技能大赛教学能力比赛官网升级,教师赛或有调整!
    近日,“全国职业院校技能大赛教学能力比赛”官网也已更名为“全国职业院校技能大赛教师赛服务平台”。此次更名不仅标志着全国职业院校技能大赛在提升教学质量、强化教师能力方面迈出了坚实的一步,也体现了大赛对于教师队伍建设的高度重视和持续支持。 据了解,全国职业院校......
  • 全国职业技能大赛(软件测试赛项)--白盒测试题目/答案三
    题目1题目:        根据下列流程图编写程序实现相应分析处理,并设计测试数据进行判定覆盖测试。输入数据打印出“输入a值:”、“输入b值:”。x执行结果输出文字“x的值:”和x的值,y执行结果输出文字“y的值:”和y的值;z执行结果输出文字“z的值:”和z的......
  • 【楚怡杯】职业院校技能大赛 “Python程序开发”数据分析练习
    基础操作(1)用字典数据类型创建DataFrame。(2)将创建的Dataframe的索引设置为,ABCD。并且命名为“索引”。(3)在下面新增一行。然后删除。(4)增加新的属性列,列名设置为‘port’,值均为1。(5)取出1991和1994年的数据。(6)获取前‘state’和‘year’的数据。(7)查看每一列数据的数据格式,并......
  • 蓝桥杯【物联网】零基础到国奖之路:一.赛项介绍与软件安装
    蓝桥杯【物联网】零基础到国奖之路:1.赛项介绍与软件安装第一章大赛概述第二章软件安装1,jre-8u221-windows-x642,SetupSTM32CubeMX-5.3.03,mdk5234,Keil_STM32L0xx_DFP_2.0.15,CMSIS-DAP第一章大赛概述蓝桥杯(电子类)物联网设计与开发科目由北京四梯科技有限公司设计和......
  • 2024年云南省职业院校技能大赛中职组 “移动应用与开发”赛项竞赛样卷
    2024年云南省职业院校技能大赛中职组“移动应用与开发”赛项竞赛样卷移动应用开发交流进步裙:958892296文章目录2024年云南省职业院校技能大赛中职组“移动应用与开发”赛项竞赛样卷模块A:移动应用界面设计模块B:移动应用前端开发模块C:移动应用测试与交付一、......
  • 2024年云南省职业院校技能大赛中职组“网络搭建与应用”赛项竞赛样卷
    2024年云南省职业院校技能大赛中职组“网络搭建与应用”赛项竞赛样卷文章目录2024年云南省职业院校技能大赛中职组“网络搭建与应用”赛项竞赛样卷第一部分:网络理论测试(100分)第二部分:网络建设与调试(400分)第三部分:服务搭建与运维(500分)竞赛说明一、竞赛内容分布......
  • 2024年云南省职业院校技能大赛中职组“大数据应用与服务”赛项竞赛样卷
    2024年云南省职业院校技能大赛中职组“大数据应用与服务”赛项竞赛样卷文章目录2024年云南省职业院校技能大赛中职组“大数据应用与服务”赛项竞赛样卷模块一:平台搭建与运维模块二:数据获取与处理模块三:业务分析与可视化大数据相关资源参考链接:https://blog.csdn.ne......
  • 【软件测试】2023年职业院校技能大赛高职组“软件测试”赛项样题
    目录一、竞赛时间、内容及成绩组成二、竞赛须知三、任务说明(一)竞赛环境(二)竞赛任务文档(三)任务组成任务一:单元测试(10分)任务二:设计功能测试文档(15分)任务三:功能测试(25分)任务四:自动化测试(20分)任务五:性能测试(20分)任务六:接口测试(5分)四、竞赛结果提交一、竞赛时......
  • 第46届金砖国家世界技能大赛 内存取证样题一
    题目:从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password}形式提交(密码为6位);获取当前系统ip地址及主机名,以Flag{ip:主机名}形式提交;获取当前系统浏览器搜索过的关键词,作为Flag提交;当前系统中存在挖矿进程,请获取指向的矿池地址,以Flag{ip:端口}形式......