CLI Команды

В hello world гайде мы выполняли команду leo run. Эта команда запускает несколько других Leo CLI команд перед проверкой доказательства.

leo run

Шаг за шагом

Давайте пройдемся по каждой команде, вызываемой leo run, чтобы лучше понять, что происходит под капотом. Во-первых, удалите все файлы сборки с помощью:

leo clean

вывод в консоли:

Done Finished in 10 milliseconds

1. Сборка (Build)

Команда leo build компилирует программный файл main.leo. Leo проверит синтаксис программы и создаст circuit.

leo build

Чтобы избежать ненужных компиляций в будущем, Leo создает контрольную сумму в outputs/hello-world.sum. В каталоге outputs будут храниться все файлы, созданные Leo CLI.

вывод в консоли:

Compiling Starting…
Compiling Compiling main program… (“hello-world/src/main.leo”)
Compiling Complete
Done Finished in 10 milliseconds

2. Setup

Команда leo setup генерирует ключ доказательства в файле outputs/hello-world.lpk и ключ верификации в файле outputs/hello-world.lvk.

leo setup

вывод в консоли:

Setup Starting…
Setup Saving proving key (“hello-world/outputs/hello-world.lpk”)
Setup Complete
Setup Saving verification key (“hello-world/outputs/hello-world.lvk”)
Setup Complete
Done Finished in 10 milliseconds

3. Prove

Команда leo prove генерирует доказательство в outputs/hello-world.proof, используя исходные данные в inputs/hello-world.in и ключ доказательства в outputs/hello-world.lpk`.

leo prove

вывод в консоли:

Setup Detected saved setup
Setup Loading proving key…
Setup Complete
Setup Loading verification key…
Setup Complete
Done Finished in 10 milliseconds

Proving Starting…
Proving Saving proof… (“hello-world/outputs/hello-world.proof”)
Done Finished in 10 milliseconds

4. Verify

Команда leo run проверяет доказательство в outputs/hello-world.proof, используя ключ верификации outputs/hello-world.lvk, и выводит результат верификации на консоль.

leo run

вывод в консоли:

Verifying Starting…
Verifying Proof is valid
Done Finished in 10 milliseconds

Команда leo run будет пытаться проверить доказательство, только если все предыдущие шаги выполнены успешно. Перед выполнением каждой команды Leo CLI проверяет наличие существующих файлов .sum, .lpk, .lvk или .proof в каталоге outputs. Это гарантирует, что мы не будем запускать ненужные команды.

5. Выходные данные программы (Program outputs)

Возвращаемое значение главной функции сохраняется в выходном файле программы outputs/hello-world.out.

outputs/hello-world.out

[registers]

r0: u32 = 3;

Попробуйте отредактировать входные данные в файле input/hello-world.in, а затем выполнить команду leo run. Если вы предоставили программе разные входные значения, то вы должны увидеть разные результаты, записанные в выходные регистры. Обязательно запустите leo clean, чтобы удалить старую контрольную сумму.

Язык Leo

Чтобы узнать больше о том, как использовать язык Leo Language, начните отсюда.

Интерфейс Leo CLI

Чтобы узнать больше о том, как использовать Leo CLI, начните здесь.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store