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 millisecondsProving 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, начните здесь.