Полностью закрыть вопрос «ведомость можно изменить» с помощью блокчейн-аттестации.
Провинциальное обучение и аттестация по охране труда охватывают множество предприятий и работников, а результаты напрямую влияют на допуск к работе.
Традиционно каждое учебное заведение выдаёт свои ведомости оценок, подтверждая их печатью и бумажным архивом. Проблем три: оценки можно изменить; результаты не признаются другими организациями, при переходе нужно пересдавать; проверка для регулятора дорога, поэтому возможна только выборочно.
Для таких систем главное требование — не количество функций, а достоверность результата.
Поставлена AI-система комплексной оценки: 7 систем оценки и 9 программных модулей, раздельно по типам оценки.
При формировании каждой ведомости вычисляется отпечаток SHA-256, отпечаток записывается в цепь, а оригинал остаётся в бизнес-базе.
При проверке сравниваются только отпечатки, исходные данные не запрашиваются — доверие есть, утечки приватности нет.
Консорциумная сеть развёрнута на 3 узлах: обучающая организация, регулятор и независимый оператор аттестации; ни один узел не может изменить записи в одностороннем порядке.
В таблице ниже — технические элементы проекта, по ним клиент может проверить всё самостоятельно.
Истории о проектах без ограничений — вымысел. В этом разделе перечислены четыре ограничения: сроки, площадка, персонал и соответствие требованиям.
Эти ограничения напрямую определяют облик решения: каждая проблема в разделе «Ключевые сложности» ниже вызвана одним из них.
Это не «мы очень старались», а «как выглядела проблема, как мы её решили и какой ценой».
Этот раздел — для коллег по отрасли. Если вы делаете нечто подобное, эти пункты избавят вас от лишних обходных путей.
Полностью запретить изменение оценок нереально — ошибочные оценки нужно исправлять. Метод: каждое изменение создаёт новую версию, а старые остаются доступными навсегда.
Скорость записи в блокчейн не подходит для высоконагруженных сценариев. Универсальное решение — асинхронность и явные статусы.
Любая система аттестации для низового звена должна исходить из того, что сеть отключится.
Рассказывать только об успехах — неискренне. Этот раздел о том, где мы ошиблись или опоздали.
Если бы делали заново, согласование словаря данных сделали бы уже в первой версии. Сейчас определения полей в городах различаются, и при сводной статистике пришлось делать массу сопоставлений; этого можно было избежать единым словарём на этапе требований.
Мы слишком оптимистично оценили объём записей в цепь. Десятки тысяч записей казались мелочью, но при параллельной записи в консорциумной сети очередь ощущается сильно. Знай мы это сразу, сделали бы асинхронно с самого начала.
Мобильной адаптации не хватило. В некоторых городах надзор ведут с планшетов, а интерфейс на маленьком экране оказался слишком плотным — позже сделали отдельный клиент для наблюдателей.