Песочница

Использование Моста Ваучера

Мост Ваучера проверяет отчёт внешнего движка, который связывает объявленные исходник, цель, способ выполнения, идентификатор движка, результаты проверок и связанные хэши.

Какой вопрос решает Bridge

Внешний движок, например движок преобразования кода, выполняет свой собственный конвейер со своими проверками и публикует отчёт Bridge (vouch.bridge-report/v0). Отчёт связывает объявленные байты исходника и результата, идентификатор движка, способ выполнения, результаты объявленных проверок и хэши связанных свидетельств, а также явную границу того, что отчёт утверждает и что исключает.

Проверка Bridge отвечает на один вопрос. Согласован ли этот отчёт внутренне и привязан ли он к названным байтам. Это отдельный класс артефактов, и даже корректный отчёт Bridge остаётся внешним свидетельством и не превращается в нативное свидетельство Ваучера.

Что подготовить

  • Запустите внешний движок отдельно и сохраните точные байты исходника и результата.
  • Затем передайте отчёт и названные файлы в lispex verify-bridge.

Проверка отчёта

SH
lispex verify-bridge \
  --source source.lspx \
  --target translated.output \
  bridge-report.json

Дополнительно можно проверить хэши связанных свидетельств через --linked <artifact-id>=<artifact-file>, а ожидаемый контекст, то есть профиль, предмет и способ выполнения, через --expect-context <manifest.json>. Эти флаги являются проверками на стороне получателя и подтверждают лишь то, что отчёт привязан к байтам и контексту, которые вы намеревались рассмотреть.

Код выхода 0 означает, что отчёт прошёл проверку структуры, границы и запрошенных привязок. Код 1 означает, что отчёт читается, но проверку не прошёл, и отчёт проверки при этом всё равно печатается. Код 2 означает ошибку использования, чтения или разбора JSON.

Что подтверждает успех

Успешная проверка подтверждает внутреннюю согласованность отчёта, а именно форму, привязки байтов, результаты объявленных проверок и хэши связанных свидетельств.

Чего проверка не делает

Проверка не запускает внешний движок повторно, не изучает его закрытую реализацию, не судит о корректности результата и не устанавливает семантическую эквивалентность исходника и цели.

Куда дальше

Держите рядом обзор Ваучера. Он разделяет аутентификацию, привязку запроса, согласие текущего выполнения и локальное решение.

Обзор Ваучера · Выбор способа запуска