首页 / 案例 / 某省级安全生产考核平台

政务 / 联盟链 + 考核系统

某省级安全生产考核平台

把「成绩单可改」这件事,用链上存证彻底解决。

背景

省级安全生产培训考核涉及大量企业与从业人员,考核结果直接影响上岗资格。

传统做法是各培训机构各自出成绩单,用印章和纸质档案证明。问题有三个:成绩单可以被修改;跨机构无法互认,换一家机构要重考;监管方核查成本高,只能抽查。

这类系统的核心诉求不是功能多,而是「结果可信」。

方案

交付 AI 综合考核系统,覆盖 7 大考核系统与 9 个软件模块,按考核类型分系统承载。

每份成绩单生成时计算 SHA-256 指纹,指纹上链,原文留在业务库。

核验时只需比对指纹,无需调取原始数据,既保证可信又不泄露隐私。

联盟链采用 3 节点部署,覆盖培训方、监管方与第三方存证方,任一节点无法单方面修改。

技术构成

下表为本项目的技术要素,客户可据此自行验证。

技术栈

考核系统7 大考核系统,按类型分建
软件模块9 个模块,可独立部署
链FISCO BCOS 联盟链 · 3 节点 · PBFT 共识
指纹SHA-256,成绩单生成时计算
核验链上核验接口,比对指纹即可
容错单节点故障不影响共识

成效

  • 成绩单一旦生成即不可篡改,修改会在链上留下痕迹。
  • 跨机构互认成为可能,从业人员换机构不必重考。
  • 监管方从「抽查纸质档案」变成「链上批量核验」,核查成本大幅下降。
  • 培训数据形成长期可追溯的档案,支撑后续政策制定。

用到的能力

聊类似场景

01 / 约束条件

项目在什么限制下做的

没有约束的项目故事都是编的。这一节把时间、场地、人员、合规四条限制列清楚。

这些限制直接决定了方案的形状 —— 下面「关键难点」里的每一个问题, 都是被其中某一条限制挤出来的。

四类约束

时间要在下一个考核年度开始前上线,实际开发周期被压缩到四个月。
合规考核成绩属于政务数据,不能部署在公有云,必须进政务内网。
范围覆盖全省各地市,但各地市的硬件条件与网络环境差异很大。
审计成绩一旦发布就要能接受纪检与审计的追溯,任何修改都要留痕。
02 / 关键难点

真正卡住的地方

不是「我们很努力」,是「问题长什么样、我们怎么解的、代价是什么」。

「成绩可改」这件事怎么彻底解决

原来的系统里,管理员可以在后台直接修改成绩。这在技术上没问题,但在管理上是个巨大的风险点——一旦有争议,无法证明当前成绩就是当时的成绩。
怎么解的:把成绩的发布动作做成「快照 + 上链」:发布时生成整批成绩的哈希,上链存证;之后任何修改都会产生新版本与新哈希,旧版本不可覆盖。这样既保留了修正错分的可能,又保证了修正过程可追溯。

各地市网络条件差异

有的地市有专网,有的只有普通宽带,还有的考点在乡镇,网络时断时续。
怎么解的:把考试端做成「先本地、后同步」:答题过程全部本地存储,交卷时本地落库并标记未同步,网络恢复后按队列上传。省中心的汇总看板对未同步数据做明确标注,不用「看起来都对」的数据。

上链性能跟不上集中开考

全省集中开考时,几万条成绩在半小时内产生,联盟链的写入速度成了瓶颈。
怎么解的:改成异步:成绩先落业务库并立即返回结果,链上写入由队列异步处理,允许延迟几分钟。用户侧无感,核验侧看到的是「已上链」与「待上链」两种明确状态。
03 / 可复用点

其他项目能直接借鉴什么

这一节是给同行的。如果你正在做类似的事,这几条能省你一些弯路。

「发布即快照」比「禁止修改」更现实

完全禁止改分不现实,错分总要能改。做法是让每次修改都产生新版本,旧版本永远可查。

异步上链

链的写入速度不适合高并发场景。异步 + 状态标注是通用解法。

离线优先的考试端

任何面向基层的考试系统,都要假设网络会断。

04 / 复盘

如果重做一次

只讲成功的地方很假。这一节写我们做错或做晚的地方。

如果重做,会在第一版就做「数据字典对齐」。现在各地市的字段口径不同,合并统计时做了大量映射,这部分工作本可以在需求阶段就用统一字典解决。

对链上写入量的估算偏乐观。原以为几万条是小事,实际上联盟链在并发写入时的排队效应很明显。如果早知道,一开始就会做成异步。

移动端适配做得不够。部分地市用平板监考,界面在小屏上信息密度过高,后来又专门做了一版监考端。

← 全部案例 回到首页