July 6, 2023

Aleo Testnet 3 

Aleo Testnet III. Разворачиваем смарт-контракт в тестовой сети 2.0

Содержание

О проекте

Aleo - блокчейн, использующий технологию доказательства с нулевым разглашением, что позволяет обеспечить высокий уровень конфиденциальности при работе с сетью. Алео позволяет создавать приватные приложения. Команда Алео создала свой язык программирования Leo, который гарантирует, что в созданных dApps на их блокчейне данные пользователей останутся конфиденциальными.

Aleo Testnet III — это экспериментальная сеть, позволяющая разработчикам начать создавать и тестировать приложения на Aleo. Testnet III используется основной командой для разработки и оценки новых программ, планирования и подготовки обновлений сети, а также запуска экспериментальных функций для включения в основную сеть.

Одна из текущих активностей, которую можно выполнить в тестовой сети проекта, это развернуть смарт-контракт.

Арендуем сервер

Для прохождения этой активности нам понадобится достаточно мощный сервер. Он стоит дороже, но если выбрать стандартный сервер, то некоторые команды на нем могут выполняться очень долго или вообще зависать. Таких параметров будет достаточно - Процессор: 16 core, Память: 16 ГБ, Хранилище: 128 ГБ, Трафик: 64 ТБ.

Арендуем сервер на хостинге VDSina. Заходим на сайт и нажимаем на кнопку "Создать сервер".

Задаем параметры сервера: выбираем операционную систему Ubuntu - Версия 20.04 - тип Эпичные серверы - 16 ядер, 16 Гб оперативной памяти, 128 Гб хранилище - Локация Амстердам - Отключаем ползунок Автоматическая резервная копия - включаем Дополнительные настройки, там вводим название и выбираем SSH-ключ - жмем кнопку "Создать"

Создаем кошелек Aleo

Для того, чтобы создать кошелек Aleo, переходим по ссылке. Нажимаем кнопку Generate, после этого увидим, что сгенерировались Private Key, View Key и Address. Сохраняем все три параметра.

Запрашиваем тестовые токены

Для того, чтобы получить тестовые токены, нам понадобится отправить СМС на следующий номер телефона: +1-867-888-5688. СМС должна быть следующего содержания:

Send 50 credits to ВАШ АДРЕС КОШЕЛЬКА

Подключаемся к серверу

Для того, чтобы подключиться к серверу на Windows, потребуется программа MobaXterm.

Открываем MobaXterm, через вкладку Session добавляем сервер. В поле "Remote Host" вставляем IP-адрес арендованного сервера, в разделе "Advanced SSH settings" ставим галочку в поле "Use private key" и выбираем файл с приватным ключом.

Сервер запущен и готов к работе:

Устанавливаем SnarkOS

Далее переходим к установке SnarkOS. Для этого последовательно вводим следующие команды в окне MobaXterm, после каждой строчки нажимаем Enter и ждем выполнения:

sudo apt-get update
sudo apt-get upgrade

Нажимаем У. Продолжаем вводить команды.

sudo apt-get install
screen -S anasayfa

Если возникает ошибка, то устанавливаем screen командой apt install screen, после чего заново запускаем предыдущую команду и далее по списку.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Если возникает ошибка, то устанавливаем curl командой apt install curl, после чего заново запускаем предыдущую команду и далее по списку.

После выполнения этой команды curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh нужно ввести с клавиатуры 1 и нажать Enter

Продолжаем вводить команды.

git clone https://github.com/AleoHQ/snarkOS.git --depth 1

Если возникает ошибка, то устанавливаем git командой apt install git, после чего заново запускаем предыдущую команду и далее по списку.

cd snarkOS
./build_ubuntu.sh
source $HOME/.cargo/env
cargo install --path .

Настраиваем язык Leo

Последовательно вводим следующие команды в окне MobaXterm, после каждой строчки нажимаем Enter и ждем выполнения:

cd
git clone https://github.com/AleoHQ/leo
cd leo
cargo install --path .
leo

Разворачиваем тестовое приложение

Последовательно вводим следующие команды в окне MobaXterm, после каждой строчки нажимаем Enter и ждем выполнения:

cd $HOME
mkdir demo_deploy_Leo_app && cd demo_deploy_Leo_app

В следующей команде нужно вставить между кавычек адрес вашего кошелька Aleo:

WALLETADDRESS=""
APPNAME=helloworld_"${WALLETADDRESS:4:6}"
echo $APPNAME
leo new "${APPNAME}"
cd "${APPNAME}" && leo run && cd -
PATHTOAPP=$(realpath -q $APPNAME)
echo $PATHTOAPP
cd $PATHTOAPP && cd ..

В следующей команде нужно вставить между кавычек приватный ключ вашего кошелька Aleo:

PRIVATEKEY=""

Для следующей команды нам нужно будет предварительно извлечь данные. Переходим на сайт Aleo Faucet. В строке поиска вводим свой адрес кошелька и переходим по ссылке в разделе Transaction ID.

После перехода по ссылке откроется новое окно с кодом. Чтобы структурировать этот код и найти в нем нужные данные, нам потребуется установить расширение JSON Beautifier & Editor по ссылке. После установки расширения и обновления страницы она будет выглядеть так:

Последовательно раскрываем строчки execution - transitions - 0 - outputs - 0. И здесь нам нужно поле value. Копируем данные, которые содержатся в этом поле.

Переходим по ссылке и открываем вкладку Record.

Здесь в поле Record (Ciphertext) вставляем только что скопированное значение. В поле View Key вставляем ключ просмотра, который мы сохраняли при создании кошелька Aleo. После этого в поле Record (Plaintext) будет сгенерирован код. Копируем его.

Далее между кавычек вставляем только что скопированный код и формируем следующую команду для терминала:

RECORD=""

И последняя команда:

snarkos developer deploy "${APPNAME}.aleo" --private-key "${PRIVATEKEY}" --query "https://vm.aleo.org/api" --path "./${APPNAME}/build/" --broadcast "https://vm.aleo.org/api/testnet3/transaction/broadcast" --fee 25000000 --record "${RECORD}"

После выполнения увидим в окне терминала галочку. Таким образом, мы успешно развернули приложение на Aleo.

Как развернуть еще одно приложение без удаления сервера

Если вам нужно заново пройти данную активность и развернуть приложение уже для другого аккаунта, то сервер на VDSina можно не удалять. Просто заново вводим все команды в окне терминала MobaXterm, начиная с пункта "Разворачиваем тестовое приложение"

При этом нужно учесть, что в команды мы подставляем уже другие значения адреса кошелька, приватного ключа и значения поля Record (Plaintext), сгенерированного на сайте aleo.tools

Таким образом, при разворачивании приложения не играет роли IP-адрес сервера, а учитываются только адреса задействованных кошельков. И для другого кошелька будет создан уже новый файл helloworld, в этом можно убедиться по тому, что в названии создаваемого файла используются уже другие цифры и буквы.

Переустановка системы на сервере

Если вы запутались в командах или что-то пошло не так, вы не можете найти, где допустили ошибку, не знаете, как ее исправить и хотите начать процесс разворачивания приложения заново, то можно не удалять для этого сервер на VDSina, а переустановить на нем систему. Таким образом все ранее введенные команды сбросятся.

Для этого переходим на VDSina и открываем свой сервер.

Выбираем вкладку Переустановка.

Здесь можно переустановить систему на сервере.