Aleo — это не просто zkRollup или анонимный блокчейн. Это набор инструментов для запуска приложений, основанных на доказательствах ZK, и поддержания обновленного состояния решения блокчейна L1. И самое главное, эти инструменты позволяют создавать zk-приложения без каких-либо знаний о zk, криптографии и даже не требуют понимания разработки блокчейна. В этой серии мы создадим простую программу Aleo и рассмотрим ее компоненты, процесс развертывания и использование.
Краткий обзор набора инструментов Aleo
- snarkOS — децентрализованная операционная система для приложений с нулевым разглашением
- snarkVM — виртуальная машина для выполнения с нулевым разглашением
- aleo — комплект разработки программного обеспечения (SDK) для транзакций с нулевым разглашением
- leo — язык программирования Leo. Функциональный язык со статической типизацией для приложений с нулевым разглашением
Как видите, все эти инструменты призваны помочь вам в разработке и запуске приложений на базе ZK. И это не то! Вы можете создавать приложения с помощью Aleo Studio — IDE для ZK proofs или вы всегда можете установить расширение для VSCode или Sublime Text (поддержка IntelliJ находится в разработке).
Настройка среды
Важное замечание: поскольку стек Aleo в настоящее время находится в активной разработке, я бы порекомендовал вам собрать все инструменты из исходного кода.
- Прежде всего, нам нужно установить Rust и Cargo.
Давайте установим их:
- macOS или Linux:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Окна:
Загрузите 64-разрядный исполняемый файл Windows или 32-разрядный исполняемый файл Windows и следуйте инструкциям на экране.
Пожалуйста, убедитесь, что у вас установлена последняя стабильная версия Rust (не ниже 1.62.0 на момент публикации статьи)
2. Далее мы устанавливаем aleo SDK. Это поможет нам создать учетные записи aleo и запустить локальную ноду для целей разработки:
# Download the source code git clone https://github.com/AleoHQ/aleo && cd aleo # Build in release mode $ cargo build --release
3. Наконец, нам нужно установить leo:
# Move up from aleo folder cd .. # Download the source code git clone https://github.com/AleoHQ/leo cd leo # Build in release mode $ cargo build --release
Leo — это язык высокого уровня, который позволяет легко писать приложения для Aleo. Я бы сказал, что это выглядит как простая версия Rust.
4. Давайте добавим наши папки выпуска leo и aleo в переменную PATH:
# open bashrc nano ~/.bashrc # put this two lines to the end of the file: export PATH="$HOME/leo/target/release:$PATH" export PATH="$HOME/aleo/target/release:$PATH" #save changes and update current shell: source ~/.bashrc # check leo availablity: leo leo The Aleo Team <[email protected]> CLI Arguments entry point - includes global parameters and subcommands # <...> #check aleo availablity: aleo aleo The Aleo Team <[email protected]> # <...>
Во время сборки leo устанавливаются все остальные необходимые инструменты, поэтому после завершения сборки мы готовы написать некоторый код.
Привет, мир!
Команда Aleo предоставила удобные команды leo-cli для создания шаблона приложения, включая очень простой и рабочий пример. Давайте создадим и запустим этот пример:
# Move up from leo folder cd .. # generate new leo project leo new hello New ✅ Created an Aleo program 'hello' (in "/my_lovely_machine/hello")
Большой! Теперь у нас есть наше первое приложение zk. Не торопитесь, чтобы открыть для себя его компоненты: src
, program.json
, Leo.toml
— чувствуешь себя как дома! Да, у нас есть несколько странных папок, таких как input
и output
, о которых мы поговорим позже. Но нигде нет жесткой криптографии.
Давайте запустим и посмотрим, работает ли это:
leo run # fetching required parameters # end of running output: 🚀 Executing 'hello.aleo/main'... • Executing 'hello.aleo/main'... • Executed 'main' (in 5280 ms) ➡️ Outputs • 3u32
Самая первая сборка и запуск приложения займет некоторое время, так как ему необходимо загрузить некоторые параметры. Пожалуйста, подождите некоторое время и убедитесь, что у вас стабильное интернет-соединение. В следующий раз будет намного быстрее.
Отличная работа! Я думаю, мы можем сделать перерыв в этот момент. В следующий раз мы напишем код и обсудим входные/выходные файлы и процесс развертывания.
P.S. Если установка прошла гладко и вы чувствуете, что готовы идти дальше, можете приступить ко второй части, она уже опубликована.