July 4, 2023

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 і відкриваємо свій сервер.

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

Тут можна перевстановити систему на сервері.


Представлений вище гайд складено на основі офіційного гайда від Aleo. Ознайомитися з ним можна по ссылке.