把「成绩单可改」这件事,用链上存证彻底解决。
省级安全生产培训考核涉及大量企业与从业人员,考核结果直接影响上岗资格。
传统做法是各培训机构各自出成绩单,用印章和纸质档案证明。问题有三个:成绩单可以被修改;跨机构无法互认,换一家机构要重考;监管方核查成本高,只能抽查。
这类系统的核心诉求不是功能多,而是「结果可信」。
交付 AI 综合考核系统,覆盖 7 大考核系统与 9 个软件模块,按考核类型分系统承载。
每份成绩单生成时计算 SHA-256 指纹,指纹上链,原文留在业务库。
核验时只需比对指纹,无需调取原始数据,既保证可信又不泄露隐私。
联盟链采用 3 节点部署,覆盖培训方、监管方与第三方存证方,任一节点无法单方面修改。
下表为本项目的技术要素,客户可据此自行验证。
没有约束的项目故事都是编的。这一节把时间、场地、人员、合规四条限制列清楚。
这些限制直接决定了方案的形状 —— 下面「关键难点」里的每一个问题, 都是被其中某一条限制挤出来的。
不是「我们很努力」,是「问题长什么样、我们怎么解的、代价是什么」。
这一节是给同行的。如果你正在做类似的事,这几条能省你一些弯路。
完全禁止改分不现实,错分总要能改。做法是让每次修改都产生新版本,旧版本永远可查。
链的写入速度不适合高并发场景。异步 + 状态标注是通用解法。
任何面向基层的考试系统,都要假设网络会断。
只讲成功的地方很假。这一节写我们做错或做晚的地方。
如果重做,会在第一版就做「数据字典对齐」。现在各地市的字段口径不同,合并统计时做了大量映射,这部分工作本可以在需求阶段就用统一字典解决。
对链上写入量的估算偏乐观。原以为几万条是小事,实际上联盟链在并发写入时的排队效应很明显。如果早知道,一开始就会做成异步。
移动端适配做得不够。部分地市用平板监考,界面在小屏上信息密度过高,后来又专门做了一版监考端。