Оракул, журнал и расчётное событие
Как связать показание, право и платёж без потери происхождения.
Оракул в этой архитектуре проверяет событие и переводит его в расчётное утверждение. Счётчик сообщил объём; система установила источник, интервал, качество, методику и применимое право. После этого появляется сумма, которую можно предъявить к оплате. Каждая ступень должна оставлять проверяемый след.
Четыре согласованных журнала
| Журнал | Минимальная запись |
|---|---|
| Физика | Точка, счётчик, время, объём, единица, качество |
| Результат | База, фактическое значение, методика, неопределённость |
| Права | Владелец, должник, тип, остаток, ограничения, версия |
| Деньги | Начислено, оплачено, удержано, исправлено, валюта |
Идентификатор события связывает эти записи. Время хранится с часовым поясом, а интервал определяется однозначно. В системах с переходом часов особенно важно различать два внешне одинаковых местных времени. Исправление источника создаёт новую версию и корректировку, сохраняя предыдущее состояние.
Проверки до начисления
- Источник известен; прибор и подпись принадлежат нужной точке.
- Показание относится к нужному интервалу и не устарело.
- Это событие ещё не использовано для такого же права.
- Качество полезной услуги подтверждено.
- База, формула и ценовой индекс имеют действующую версию.
- Обязательство существует и не превышает остаток права.
Логическая связка иллюстрирует условия нашего учебного оракула. Промышленная реализация должна проверять сами доказательства, а не доверять переданным флагам.
Что делать с плохими данными
Пропуск не подменяют нулевым потреблением. Нулевой объём может быть реальным, а отсутствие показания означает отсутствие знания. Событие переводят в hold, сохраняют причину и обрабатывают по процедуре замещения или спора. Неоспариваемые обязательства выполняют, если договор разрешает независимое исполнение.
Защита от повторной выплаты
Обработчик должен быть идемпотентным: повторная доставка одинакового события приводит к тому же состоянию без нового платежа. Одновременные попытки расчёта должны использовать атомарное изменение остатка. Подпись, хеш и журнал помогают проверить целостность; корректность физических данных требует поверки, диагностики и независимого контроля.
Интерактивный стенд демонстрирует переключение между готовностью к расчёту и удержанием. Он не подключён к прибору, кошельку или платёжной системе. Результат показывает, какое основание отсутствует.
Исправление создаёт разницу
Первое принятое начисление по событию составило 10 000 руб. Исправленный источник даёт 9 200. Корректировка равна минус 800 руб.; её связывают с исходным событием. Повторная доставка исправления не меняет итог. Если 10 000 уже оплачены, минус 800 становится возвратом или зачётом по договору.
Ключ включает сделку, компонент, интервал и версию события. Обработка смены версии и запись расчётной дельты выполняются согласованно.
Пример цепочки состояний: received, validated, accrued, partially_paid, corrected, settled. Спор о качестве переводит соответствующую строку в disputed. Суммы начисленного и оплаченного сохраняются раздельно. Признак unique = true в стенде только иллюстрирует результат реальной проверки журнала.
Проверьте событие для начисления
Снимите любое основание и посмотрите причину удержания. Это логический стенд; флаги не являются криптографической проверкой.
Начальные значения показаны выше. Измените параметры для пересчёта.
Оракул готовит расчёт в пределах полномочий. Автоматическая выплата и физическое управление требуют отдельных разрешений.
Самопроверка
1. Чем отличается ноль от пропуска?
Ноль является значением измерения. Пропуск означает отсутствие подтверждённого значения; его нельзя интерпретировать как экономию.
2. Что делать после исправления уже оплаченного показания?
Сохранить предыдущую версию, рассчитать разницу и провести корректировку по договорной процедуре.
3. Начислено 10 000, исправленный итог 9 200, исправление пришло дважды. Каковы итог и суммарная корректировка?
Итог 9 200, корректировка −800. Повтор не создаёт второй корректирующий платёж.
Расчётная задача. Одно событие даёт право на 5 000 руб. Оно доставлено трижды. Сколько начислений должно быть?
Одно начисление 5 000 руб. Повторные доставки должны ссылаться на уже обработанный идентификатор.
Задание агенту
Реализовать проверку происхождения, версии и уникальности. Отдельно протестировать дубликат, пропуск, устаревший индекс, пересечение интервалов и частичный спор.
Источники: Measurement and Verification for Federal ESPCs · Renewable Energy Certificates (RECs) · Цифровые финансовые активы и их операторы