当前位置: 首页 > news >正文

2026年中银杯湖北省职业院校技能大赛高职组区块链技术应用任务书

2026年中银杯湖北省职业院校技能大赛高职组区块链技术应用任务书

文章目录

  • 2026年中银杯湖北省职业院校技能大赛高职组区块链技术应用任务书
    • 模块一:区块链产品方案设计及系统运维(35分)
      • 任务1-1:区块链产品需求分析与方案设计
      • 任务1-2:区块链系统部署与运维
      • 任务1-3:区块链系统测试
    • 模块二:智能合约开发与测试(30分)
      • 任务2-1:智能合约设计
      • 任务2-2:智能合约开发
    • 模块三:区块链应用系统开发(30分)
      • 任务3-1:区块链应用前端功能开发
      • 任务3-2:区块链应用后端功能开发
    • 如需培训或资料可联系博主

气候变化是全球面临的重大环境挑战之一。人类活动,特别是化石燃料的燃烧,导致了温室气体(主要是二氧化碳)的排放增加,进而引发全球气温上升、海平面上升和极端天气事件频发。国际社会已经达成共识,需要减少温室气体排放来应对气候变化。因此各国纷纷提出碳达峰与碳中和目标,碳交易作为实现这一目标的重要手段,其重要性日益凸显。然而,传统的碳排放权交易市场存在信息不对称、交易成本高、透明度不足等问题。区块链技术的出现,以其去中心化、不可篡改、可追溯等特性,为解决这些问题提供了创新方案。

  1. 用户注册
    1.1. 普通用户注册
     企业或个人用户(以下简称“普通用户”)在区块链平台S上提交注册申请,提供必要的信息和证件材料。这些信息包括用户的基本信息、联系电话和公司名称等。
    1.2. 管理员注册
     平台管理者(以下简称“管理员”)在系统中注册,负责平台的管理和监督工作。管理员的身份信息经过严格验证,以确保管理者的合法性和公正性。
  2. 管理员审批
    o 管理员在区块链平台S上审核普通用户的注册申请,核实其提交的信息。审核通过后,普通用户正式成为平台的注册用户。
    o 管理员的审核和审批过程记录在区块链上,保证透明度和审计追踪。
  3. 碳配额的发放
    3.1. 无偿发放
     政府机构根据国家或地区的碳减排目标,为符合条件的普通用户无偿分配一定数量的碳配额。无偿发放的碳配额记录在区块链上,并分配到相应用户的账户中。
    3.2. 有偿拍卖
     除了无偿发放的碳配额,平台还会进行有偿拍卖,向用户出售额外的碳配额。拍卖由管理员组织,所有用户都可以通过区块链平台进行竞标。
     拍卖结束后,成功竞标的用户会根据竞标结果支付相应的费用,碳配额自动分配到其账户中。拍卖的过程和结果同样记录在区块链上,确保公开透明。
  4. 碳配额交易
    o 普通用户之间可以通过区块链平台进行碳配额的交易。用户A可以将多余的碳配额出售给需要更多配额的用户B。
    o 交易过程由智能合约自动执行,确保交易的公平和及时性。交易步骤包括:
     用户A发布出售碳配额的请求,包含配额数量和价格。
     用户B选择接受请求,并支付相应的款项。
     智能合约验证交易双方的身份和资产情况后,自动将碳配额从用户A的账户转移到用户B的账户,并将款项从用户B的账户转移到用户A的账户。
    o 所有交易记录都会在区块链上公开,防止任何形式的欺诈或错误。
  5. 碳配额的抵消
    o 普通用户可以选择使用持有的碳配额来抵消自身的碳排放。抵消的过程由区块链平台自动处理,确保记录的准确性和可信性。
    o 抵消过程完成后,相关信息(包括抵消的碳排放量、使用的碳配额数量等)会记录在区块链上,形成不可篡改的记录。

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

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

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

  1. 根据区块链双碳交易系统项目背景描述,对区块链双碳交易系统进行需求分析,完成以下任务:
    (1)编写用户群体需求分析,明确系统用户群体及其需求;
    (2)绘制系统UML用例图,用例图中包含系统参与角色以及用例。
  2. 依据区块链双碳交易系统业务流程,使用Visio绘制业务系统功能图;

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

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

群组编号节点数P2P端口channel端口rpc端口
群组1230300202008545
群组2230302202028547

(1)搭建区块链网络,两个节点属于群组1,另外两个节点属于群组2,其他配置见节点配置表,运行搭建脚本后的输出结果截图保存;
(2)通过命令验证区块链节点进程运行状况,结果截图;
(3)通过命令验证区块链节点(node1)连接节点数和共识状态日志输出,结果截图。
子任务1-2-2:搭建区块链控制台并验证
基于给定服务器环境以及软件(地址“/root/tools”),搭建区块链控制台并开展相关运维工作,具体工作内容如下:
(1)配置控制台,管理相关证书并指定群组1启动,启动结果截图;
(2)使用控制台部署HelloWorld智能合约,结果截图;
(3)使用控制台依次调用HelloWorld智能合约的set与get操作,结果截图;
(4)将控制台从group1切换到group2,结果截图。
子任务1-2-3:区块链账户权限控制
基于已完成的区块链系统与控制台搭建工作,开展区块链账户权限管理等运维工作,具体内容如下:
(1)创建三个新的账户,并使用账户1(account1)登录群组1控制台,添加账户1(account1)、账户2(account2)和账户3(account3)为委员并验证,使用控制台验证委员列表结果截图保存;
(2)修改账户1的票数为2并验证,修改投票阈值为75%并验证,验证结果截图保存;
(3)撤销账户3(account3)的委员权限,设置账户3为运维角色并验证,验证结果截图保存。
子任务1-2-4:区块链网络运维
根据任务描述要求,完成网络配置与管理运维操作,具体内容如下:
(1)设置区块链系统黑名单,将node3设为node0的黑名单禁止连接,修改内容截图;
(2)通过给定工具(目录/root/tools)完成新节点(node4)创建,将新节点(node4)接入群组1和群组2使用控制台验证,接入群组的验证结果截图保存;
(3)在群组1中将node1设置为观察节点并验证观察节点列表,验证结果并截图。

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

基于WeBASE的部署脚本完成WeBASE环境搭建以及搭建结果验证,最后将执行结果截图保存。
(1)实现WeBASE平台部署,访问WeBASE管理平台首页,首页截图保存;
(2)使用WeBASE-Sign进行对数据E7ADBEE5908D进行签名,结果截图;
(3)使用WeBASE-Front查询机器历史性能信息,结果截图。

序号中文参数名类型必填说明
1开始日期beginDateLocalDateTime
2结束日期endDateLocalDateTime
3对比开始日期contrastBeginDateLocalDateTime
4对比结束日期contrastEndDateLocalDateTime
5间隔gapint默认为1

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

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

根据区块链双碳交易系统需求分析和设计文档的描述,绘制智能合约UML时序图,编写该区块链产品的智能合约功能需求文档。具体要求如下:

  1. 绘制区块链双碳交易系统智能合约的UML时序图;
  2. 结合区块链双碳交易系统项目背景、概要设计、需求分析和功能设计等,编写区块链双碳交易系统的智能合约功能需求文档。

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

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

  1. 实现授予指定账户account指定角色role功能。
    o 编写grantRole函数,进行权限验证,调用者必须拥有该角色role的管理员角色,否则抛出错误 AccessControl: sender must be an admin to grant,然后调用内部方法 _grantRole 实际授予角色。
    o 编写_grantRole函数,如果账户account尚未拥有该角色role,则将账户添加到该角色的 members 成员中,并触发 RoleGranted 事件。
    子任务2-2-2:碳凭证合约开发
    根据功能介绍在待补充源码中完成双碳交易合约的编码,解决代码错误和警告,正确编译合约,功能调试正确。
  2. 编写构造函数实现RoleManagement和ERC1155合约的初始化,并设置ERC1155URIStorage._setBaseURI(传入的字符串类型参数值均为:“Carbon certificate”)。
  3. 创建新的碳证并分配给指定账户。此方法使用修饰符进行修饰只有DEFAULT_ADMIN_ROLE角色可以调用。每次调用lastCarbonId状态变量自增。调用父合约 ERC1155 中的 _mint 方法,将新数量的碳证分配给 account。调用 _setURI 方法,为新创建的碳证设置 URI,传入新碳证 ID 和 note。返回新生成的碳证 ID lastCarbonId。
    子任务2-2-3:碳交易合约开发
  4. 创建一个委托交易订单,可选择买入或卖出碳凭证。此方法使用修饰符进行修饰只有USER角色可以调用。交易状态必须是买入(TradingStatus.Buy)或卖出(TradingStatus.Sell),否则抛出错误CreditTrading: trading status error。每次调用_lastTradingId状态变量自增。如果 tradingStatus 为买入,则调用_account合约从调用者向本合约转移价格*数量的资金,并触发 BuyOrder 事件。如果 tradingStatus 为卖出,则调用 _carbonCredits 从调用者向本合约转移 carbonId 对应的 amount 数量的碳凭证,附加数据为空字符串 “”,触发 SellOrder 事件。将订单信息存入 _order[]映射当中,key为_lastTradingId。返回 _lastTradingId。
  5. 编写购买碳凭证方法,即买入委托卖出的挂单。此方法使用修饰符进行修饰只有USER角色可以调用。订单状态必须为 TradingStatus.Sell,否则抛出错误 CreditTrading: trading status error。从 _order 中获取 tradingId 对应的订单信息,存储在局部变量order 中。将 _order[tradingId] 的 tradingStatus 更新为 TradingStatus.Finish。调用 _account 的 transferFrom 方法,从 msg.sender 向 order.owner 转移 order.price.mul(order.amount) 的资金。
    任务2-3:智能合约测试
    子任务2-3-1:角色访问控制合约测试
  6. 定义合约部署夹具(deployAccount 函数)。获取 Hardhat 本地测试网络的 6 个默认账户owner, alice, bob, carol, dave, eve。获取 Account 合约的工厂对象,得到部署后的合约实例 account。将合约实例 account 和所有测试账户返回,供测试用例调用。
  7. 测试mint方法。调用执行夹具deployAccount函数,获取部署好的合约实例 account 和管理员账户 owner。以管理员 owner 的身份,调用合约的 mint 方法铸造1000代币,接收者为owner。通过expect断言,验证owner余额为1000。

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

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

使用VsCode工具,在src\views\admin\QuotaManagement\index.vue文件中完成新建额度功能并按照下面新建额度的原型图的长度、宽度、行高、间距、文字样式、颜色等,完成新建额度页面的开发,且需要对新建额度做规则校验,校验结果如下图所示,将Web页面和代码截图保存(截图没有水印);

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

任务3-2-1:创建交易信息表
创建表结构:新建表名为 t_transaction 的数据表,需包含以下 12 个字段及对应配置:
• 字段 1:id,数据类型为 int(11),设置为非空(NOT NULL),开启自增属性(AUTO_INCREMENT),作为表的主键(PRIMARY KEY),索引类型使用 BTREE。
• 字段 2:index_id,数据类型为 int(11),允许为空(NULL),默认值设为 NULL。
• 字段 3:user_id,数据类型为 int(11),允许为空(NULL),默认值设为 NULL,添加注释 “委托者”。
• 字段 4:quota,数据类型为 int(11),允许为空(NULL),默认值设为 NULL,添加注释 “额度”。
• 字段 5:price,数据类型为 decimal(13, 2)(总长度 13 位,小数位 2 位),允许为空(NULL),默认值设为 NULL,添加注释 “价格”。
• 字段 6:delist,数据类型为 int(11),允许为空(NULL),默认值设为 NULL,添加注释 “摘牌者”。
• 字段 7:type,数据类型为 int(4),允许为空(NULL),默认值设为 NULL,添加注释 “0 买入 1 卖出”。
• 字段 8:total_value,数据类型为 decimal(13, 2)(总长度 13 位,小数位 2 位),允许为空(NULL),默认值设为 NULL,添加注释 “总价值”。
• 字段 9:create_time,数据类型为 datetime(0)(无小数位的日期时间类型),允许为空(NULL),默认值设为 NULL,添加注释 “创建时间”。
• 字段 10:status,数据类型为 int(4),允许为空(NULL),默认值设为 NULL,添加注释 “交易状态”。
• 字段 11:deal_time,数据类型为 datetime(0)(无小数位的日期时间类型),允许为空(NULL),默认值设为 NULL,添加注释 “交易时间”。
• 字段 12:order_id,数据类型为 int(11),允许为空(NULL),默认值设为 NULL。
任务3-2-2:账号注册与审核

  1. 编写SysUserController接受页面请求,使用Get方式接收请求,并使用JSON或者实体类的方式接收请求数据,根据请求参数生成密钥后返回前端。
  2. 编写SysUserController接受页面请求,使用Post方式接收页面请求,并使用JSON或者实体类的方式接收请求数据。如审核通过,调用合约校验账户信息,无误后修改状态为审核通过,如不通过直接修改状态为不通过,调用Mapper层方法保存到数据库中,将修改成功信息返回前端。

如需培训或资料可联系博主

http://www.cnnetsun.cn/news/735510.html

相关文章:

  • 2026年湖北省职业院校技能大赛5G组网与运维(高职学生组)任务书
  • 【R语言数据可视化终极指南】:用ggplot2画散点图+回归线的5种高效方法
  • 【Unity脚本生命周期深度解析】:C#中Awake、Start、Update执行顺序全揭秘
  • 【高并发场景实测数据】PHP数组转JSON中文输出失败率高达67%?3种零兼容风险解决方案曝光
  • mysql服务无法启动问题
  • Open-AutoGLM备忘录创建:语音转文字记录执行部署实战
  • Z-Image-Turbo生成文字模糊?中英双语渲染优化教程
  • 【PHP连接MySQL报错1045终极指南】:揭秘权限拒绝根源与5种高效解决方案
  • Qwen3-Embedding-0.6B从零部署:SGlang服务启动完整步骤
  • Qwen3-1.7B企业应用案例:文档生成系统落地实战教程
  • async Task返回void的代价:一个小小错误导致内存泄漏?
  • (C#与.NET 9协同进化):构建超高速云原生应用的终极武器
  • Paraformer-large邮件通知功能:完成转写后自动发送报告
  • 还在用传统模糊方法?:探索OpenCV 4.x中新增可编程模糊算法的惊人性能提升
  • 一看就懂的网络安全核心要点:零基础快速上手指南
  • 网络安全全栈指南:万字长文带您从零基础入门到系统精通
  • 网络安全入行血泪总结:这10个新手必踩的坑,我帮你先填上了
  • 基于STM32单片机智能消防小车灭火机器人寻找火源锂电池蓝牙无线APP/WiFi无线APP/摄像头视频监控设计S378
  • Open-AutoGLM日志查看技巧:问题定位与调试实战
  • 阿里开源FSMN VAD模型实战:WebUI界面快速上手保姆级教程
  • AI元人文:反思之反思——作为可能性文明操作系统的思想实验
  • 《寒窑赋》
  • Z-Image-Turbo与ComfyUI集成?可视化工作流部署教程
  • 别卷了,AI还没学会“背锅”呢
  • 【市净率PB】【市盈率PE】【市盈增长比 PEG】
  • GPEN显存溢出怎么办?低显存GPU优化部署实战解决方案
  • AI创作趋势前瞻:Qwen开源图像模型落地实战指南
  • 2026必备!10个AI论文写作软件,自考毕业论文轻松搞定!
  • YOLOv11预测结果后处理:NMS优化部署技巧详解
  • Emotion2Vec+ Large与DeepSpeech情感分析对比:企业选型评测