Home / Case studies / A provincial work safety assessment platform

Government / consortium chain + assessment system

Provincial Work Safety Assessment Platform

Solving 'transcripts can be changed' once and for all with on-chain attestation.

Background

Provincial work safety training and assessment covers a large number of enterprises and workers, and results directly affect eligibility to work.

Traditionally each training institution issues its own certificates, backed by stamps and paper files. Three problems: certificates can be altered; results are not recognised across institutions, so switching schools means retaking the exam; and regulators face high verification costs, so they can only spot-check.

For this kind of system the core requirement is not many features but trustworthy results.

Solution

Delivered the AI Integrated Assessment System, covering 7 assessment systems and 9 software modules, split by assessment type.

A SHA-256 fingerprint is computed when each transcript is generated; the fingerprint goes on-chain and the original stays in the business database.

Verification compares fingerprints only and needs no original data, so it is trustworthy without exposing privacy.

The consortium chain runs on 3 nodes covering the training provider, the regulator and a third-party attestation provider; no single node can alter records unilaterally.

Technical composition

The table below lists this project's technical elements so clients can verify them independently.

Tech stack

Assessment System7 assessment systems, built separately by type
Software modules9 modules, independently deployable
ChainFISCO BCOS consortium chain · 3 nodes · PBFT consensus
FingerprintSHA-256, computed when the transcript is generated
VerificationOn-chain verification API: just compare the fingerprint
Fault toleranceA single node failure does not affect consensus

Outcomes

  • Once a transcript is generated it cannot be altered; any change leaves a trace on chain.
  • Mutual recognition across institutions becomes possible: practitioners no longer need to retake exams when they change employer.
  • Regulators move from sampling paper files to batch verification on-chain, sharply cutting inspection costs.
  • Training data forms a long-term traceable archive that supports later policy-making.

Capabilities Used

Discuss a similar scenario

01 / Constraints

The constraints the project was built under

Project stories without constraints are fiction. This section sets out four constraints: time, site, staffing and compliance.

These constraints directly shape the solution; every problem under 'Key challenges' below is forced out by one of them.

Four kinds of constraint

TimeIt had to go live before the next assessment year began, compressing development into four months.
ComplianceAssessment results are government data, so they cannot be hosted on a public cloud and must sit on the government intranet.
ScopeDeployed across all prefecture-level cities in the province, but hardware conditions and network environments vary widely between them.
AuditOnce published, results must withstand disciplinary and audit tracing, and every edit must leave a trace.
02 / Key challenges

Where It Actually Gets Stuck

It is not “we worked hard”; it is “what the problem looked like, how we solved it, and what it cost”.

How to settle “the grades can be edited” once and for all

In the old system an administrator could edit scores directly in the backend. Technically fine, but a huge management risk — once there is a dispute, there is no way to prove the current score is the score recorded at the time.
How we solved it: publishing becomes 'snapshot + on-chain anchor' — a hash of the whole batch is generated and attested on chain at release; any later edit creates a new version and a new hash, and the old version cannot be overwritten. Corrections stay possible and fully traceable.

Network conditions vary between cities

Some cities have private networks, others only ordinary broadband, and some exam sites are in townships where connectivity drops in and out.
How we solved it: the exam client works 'local first, sync later' — answers are stored locally throughout, saved to the local database on submission and flagged as unsynced, then uploaded from a queue once the network returns. The provincial dashboard explicitly marks unsynced data rather than showing numbers that merely look right.

On-chain throughput cannot keep up with exams starting at the same time

When exams run province-wide at the same time, tens of thousands of results are produced within half an hour, and consortium chain write throughput becomes the bottleneck.
How we solved it: made it asynchronous — scores land in the business database and return a result immediately, while on-chain writes are queued and may lag a few minutes. Users notice nothing; verifiers see two explicit states, 'on chain' and 'pending'.
03 / Reusable elements

What other projects can borrow directly

This section is for peers. If you are doing something similar, these points will save you a few detours.

“Publish as a snapshot” is more realistic than “no edits allowed”

Banning score edits outright is unrealistic — wrong scores have to be fixable. The method: every edit creates a new version, and old versions remain permanently visible.

Asynchronous on-chain writes

Chain write speed is unsuited to high-concurrency scenarios. Asynchronous processing plus status flags is the standard answer.

Offline-First Exam Client

Assume the network will go down in any assessment system aimed at the grassroots.

04 / Retrospective

If we did it again

Talking only about successes is unconvincing. This section covers what we got wrong or did too late.

Doing it again, we would align the data dictionary in version one. Field definitions differ between cities, so aggregated reporting needed extensive mapping — work a unified dictionary could have eliminated at the requirements stage.

We were overly optimistic about on-chain write volume. Tens of thousands of records looked trivial, but queueing under concurrent writes on a consortium chain is very noticeable. Had we known, we would have gone asynchronous from the start.

Mobile adaptation was insufficient. Some cities invigilate on tablets, where the interface was too dense on small screens, so a dedicated invigilation client was built later.

← All case studies Back to home