МанитонДокументация
Контракты

Besu connector: ожидание receipt

Конкретный retry не является обещанием времени финальности.

Feature: Receipt еще не найден
  Scenario: Receipt еще не найден
    Given транзакция принята но блок не получен
    When connector запрашивает receipt
    Then он не сообщает финансовую финализацию до receipt
    And ошибка ожидания не доказывает отсутствие транзакции в цепочке

Реализация в исходниках

handleGetReceipt читает receipt один раз. Ответ transaction receipt not found оставляет операцию в ожидании и не публикует TransactionFailedEvent. Системный BlockRead без context принимается только как уведомление блока; транзакционные события без context отклоняются. CFA запрашивает receipt для незавершенных транзакций блока и дополнительно обходит сохраненные операции страницами до 100 записей с keyset cursor. Проверяются CREATED и ONCHAIN_SUBMITTED с txHash, а также FAILED с неопределенным результатом или резервом RECONCILIATION_REQUIRED; окончательно отклоненные и завершенные операции исключены. Ошибка публикации не продвигает cursor. Успешное чтение дает ReceiptReady, но предметная проверка цепочки остается обязательной.

Расширенная сверка и прием BlockRead без context проверены локально. Активация разрешена владельцем 11 октября 2026 года; точная ревизия и production-проверка фиксируются в release evidence. Разрешенный scope — сверка прежних операций с сохраненным txHash через существующий финализатор, без создания новых транзакций.

Риск интерпретации

Период блока в наблюдавшейся сети — 60 секунд. Отсутствие receipt не доказывает откат и не разрешает новую финансовую команду. Резерв и окончательное состояние определяются прежним финализатором CFA. Listener хранит checkpoint в памяти; сверка сохраненных операций при следующем BlockRead восстанавливает запросы receipt из пропущенных блоков без повторного подписания или отправки транзакции. При отсутствии новых BlockRead обход не запускается. Активация recovery может завершить старые операции и изменить остатки: необходим отдельный согласованный production scope; откат образа не отменяет уже финализированные проводки. Источники: apps/services/besu-connector/internal/handlers/router.go, internal/besu/client.go; apps/services/cfa-core/src/domains/cfa/presentation/cfa-events.controller.ts и application/handlers/besu-events.handler.ts. Разбор ошибок.

Сценарии задают ожидаемое поведение. Наличие страницы не подтверждает реализацию, банковское исполнение или согласование Правил.

На этой странице