Песочница

Записи и отчёты Ваучера

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

Например, authenticated.json записывает действительную подпись по вашей политике. current.json добавляет сравнение нового выполнения. gate.json записывает, совпал ли текущий результат с требуемым решением.

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

Прочитайте результат и выберите следующую команду

Ниже перечислены файлы отчётов из руководства.

ФайлКакой результат читатьСледующая команда
issued/issue-report.jsonstatus: "issued-native"vouch verify аутентифицирует пакет
authenticated.jsonauthentication_status: "authenticated"Добавьте свои --source и --input
bound.jsonАутентификация успешна после совпадения отдельно переданных исходника и входаДобавьте --reexecute
current.jsonreexecution.status: "execution-agreed" и comparison.current_vs_signed: "agree"Запустите vouch gate с нужным решением
gate.jsongate.status: "granted", требуемое и наблюдаемое решенияПриложение применяет свою политику действий

authenticated.json и bound.json используют csk.native-verify-report/v0. Их поле comparison_status описывает подписанную запись выполнения. Вызов с привязкой запроса добавляет ваши внешние исходник и вход. current.json использует csk.native-reexecution-report/v0 и отдельно записывает аутентификацию и текущее согласие tree/Meaning. gate.json использует csk.native-gate-report/v0.

Интерпретатор Лиспекса читает исходник, нормализует его в основные формы CoreExpr и вычисляет их. Meaning вычисляет представление, полученное из того же исходника. Текущее сравнение охватывает полные записи выполнения, включая итоговый результат.

Каждый вызов gate аутентифицирует данные, привязывает запрос, заново выполняет правило и проверяет решение в одном процессе Native. Он использует результат каждого предыдущего этапа внутри этого процесса. Сохранённые отчёты описывают вызов для просмотра и журналирования. Следующий вызов начинается с пакета или конверта, политики, ваших исходника и входа.

Файлы для аутентификации

Файл или форматСодержимоеГде используется
policy.json, политика доверия v1Выбранные получателем ключи, движки, профили языка и идентификаторы исходниковvouch verify и vouch gate
issued/envelope.dsse.jsonКонтейнер подписанной записи с данными выполненияvouch verify --envelope с внешними исходником и входом
issued/vouch-input-bundle.json, csk.vouch-input-bundle/v0Точные байты конверта, исходника и входаvouch verify --bundle или vouch gate --bundle
issued/payload.jsonПодписанные данные выполнения с идентификаторами исходника и входа и полными записямиПроверка структуры и аутентификация

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

Проверьте структуру записи выполнения

Используйте данные выполнения и точный вход из руководства для проверки структуры записи.

SH
lispex vouch inspect \
  --receipt issued/payload.json \
  --source refund-window.lspx \
  --input input.checked.json \
  --profile csk.checked-profile/v1 \
  --report-out structure.json

Команда завершается с кодом 0 без вывода. Она записывает следующий structure.json.

JSON
{
  "status": "structurally-consistent",
  "verify_report": "csk.verify-report/v0"
}

Проверка охватывает схему записи, хеши и внутренние привязки. Аутентификация подписи выполняется отдельно командой vouch verify из руководства.

Формат дифференциальной записи csk.differential-receipt/v0 описывает правило профиля решений и точный вход. Он также содержит полученное промежуточное представление, результаты выполнения, версии и хеши. Native lispex diff-receipt создаёт такую запись. npm lispex verify проверяет структуру записи. npm lispex replay сравнивает наборы записанных случаев. Эти команды описаны в CLI и сравнении случаев Ваучера.

Соберите и проверьте скомпилированный файл

Файл lispex.vouch-compiled-artifact/v1 связывает точный исходник с Core IR и проверенным байткодом. Core IR — промежуточное представление с разрешёнными ссылками имён. Файл также идентифицирует проверяющую программу байткода, ВМ Лиспекса и профиль ресурсов. Виртуальная машина выполняет скомпилированные инструкции.

Соберите файл из исходника руководства, затем проверьте, что он в точности получается из этого исходника.

SH
lispex vouch compiled build \
  --source refund-window.lspx \
  --out refund-window.lpxvca

lispex vouch compiled validate \
  --artifact refund-window.lpxvca \
  --source refund-window.lspx

Обе команды завершаются с кодом 0 и выводят JSON. Сборка создаёт refund-window.lpxvca и сообщает execution: "not-run". Проверка сообщает valid: true, derivation: "exact-source" и execution: "not-run". Оба результата содержат authority: "integrity-only". Далее аутентифицируйте запрос и выполните скомпилированные инструкции.

SH
lispex vouch verify \
  --bundle issued/vouch-input-bundle.json \
  --trust-policy policy.json \
  --source refund-window.lspx \
  --input input.checked.json \
  --profile csk.checked-profile/v1 \
  --reexecute \
  --compiled-artifact refund-window.lpxvca \
  --report-out compiled-current.json

Команда завершается с кодом 0 без вывода. Она записывает compiled-current.json в формате csk.native-compiled-reexecution-report/v1. Отчёт фиксирует аутентификацию с привязкой запроса и текущее согласие tree/Meaning. Он также записывает точное повторное построение из исходника и текущее согласие ВМ Лиспекса.

ПолеЗначение в этом примере
authentication.status"authenticated"
compiled_reexecution.status"execution-agreed"

Native аутентифицирует запрос перед повторным построением Core IR и байткода. Затем проверяет байткод и сравнивает текущее выполнение VM. Чтобы потребовать нужное решение в том же вызове, запустите проверку допуска со скомпилированным файлом.

SH
lispex vouch gate \
  --bundle issued/vouch-input-bundle.json \
  --trust-policy policy.json \
  --source refund-window.lspx \
  --input input.checked.json \
  --profile csk.checked-profile/v1 \
  --compiled-artifact refund-window.lpxvca \
  --require-decision approve \
  --report-out compiled-gate.json

Команда завершается с кодом 0 без вывода. Она создаёт compiled-gate.json в формате csk.native-compiled-gate-report/v1. Поле gate.status равно "granted". Поля gate.observed_decision и gate.required_decision равны "approve". Локальный допуск существует внутри этого вызова Native.

Другие отчёты сравнения

Эти отчёты отвечают на собственные вопросы сравнения. Проверка допуска Native использует аутентифицированное текущее выполнение.

Отчёт или продуктЧто записываетГде использовать
Отчёт BridgeПривязки файлов внешнего движка, идентификаторы и объявленные проверкиlispex verify-bridge и политика Bridge получателя
Отчёт сравнения случаевСовпадение, расхождение и состояние сравнения выбранного набораПроверка правил через replay

Использование Ваучера Лиспекса · Обзор Ваучера