March 10, 2023

Aleo Deploy | Алео деплой смарт-контракта 

Требования к серверу

Достаточно большие для некоторых отдельных компонентов, но поскольку нам не для работы, а просто задеплоить контракт, то я решила попробовать я взяла СPX31 хетцнере

Для начала запросите токены через отправку смс тут и когда вам прийдет вторая смс с хешем - приступайте! Токены запрашивать на кошелек, есть два варианта где где его взять:

  1. Переходите по ссылке и создаете кошелек (либо загружаете с приватного ключа)
  2. Устанавливаете браузерное расширение leo wallet и создаете кошелек в нем

Установка Leo:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
#выбираем 1

source "$HOME/.cargo/env"

sudo apt update && sudo apt upgrade

sudo apt install lldb lld libboost-all-dev libpq-dev libssl-dev pkg-config openssl ocl-icd-opencl-dev curl git jq lz4 unzip ca-certificates gnupg lsb-release -y

sudo apt install build-essential gcc

git clone https://github.com/AleoHQ/leo

cd leo

cargo install --path .

leo
#просто проверка, что ваш терминал знал эту команду

cd

Установка Snark OS:

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

cd snarkOS

./build_ubuntu.sh

cargo install --path .

snarkos
#просто проверка, что ваш терминал знал эту команду

Установите расширение для Google Chrome от сюда

Используем кошелек, напоминаю, что его можно было создать двумя путями (по ссылке и или в браузерном расширении leo wallet)

cd

mkdir Leo_app && cd Leo_app

WALLETADDRESS="<Address>"
#заменить <Address> на свой кошелек

APPNAME=helloworld_"${WALLETADDRESS:4:6}"

leo new "${APPNAME}"
#правильный вывод:  Leo ✅ Created an Aleo program ...

cd "${APPNAME}" && leo run && cd -

PATHTOAPP=$(realpath -q $APPNAME)

Теперь наша задача получить рекорд, это можно сделать двумя путями:

  1. Открыв транзакцию в обозревателе блоков через кошелек leo wallet
  2. СНАЧАЛА ПРОЧИТАЙТЕ ВЕСЬ АБЗАЦ ВО ИЗБЕЖАНИЕ КУЧИ ВОПРОСОВ)))
    В новом кране вбиваем в поиск свой кошелек, видим строку с транзакцией - нажимаем на Transaction ID (что бы красиво отобразить открывшуюся вкладку и проще было понять что нужно - можно этот весь текст вставить на этом сайте или в хроме установить расширение JSON beautifier).
    Открыли вкладку - в тексте ищем поле object, в нем execution, в нем transitions, в нем output, в нем value - и копируем это значение (записываем себе)
    Далее на скрине показано как добраться к этому value (стрелочки вниз - это развернутые поля)

Теперь идем на этот сайт, раздел "records"

В первое поле вставляем то, что скопировали из джейсона, во второе View key вашего кошелька, сохраняем себе вывод(далее назовем это record)

Возвращемся в терминал:

cd $PATHTOAPP

PRIVATEKEY="<private_key>"
#заменить <private_key> на свой приватный ключ от кошелька
RECORD="<record>"
#заменить <record> на то, что вы сохраняли чуть раньше с сайта алео тулз

cd ..

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 5000000 --record "${RECORD}"
#в выводе нужно увидеть "Successfull" 

Что бы проверить правильность выполнения, идем на этот сайт, раздел "Rest API" -> Get Program, в нее вставляем helloworld... (взять с терминала в строке, как на скрине ниже) - нажимаем на поиск - должно выдать ответ

Выполняем смарт контракт
Нам нужно достать рекорд, только теперь с транзакции на деплой смарт контракта, у нас два варианта:

  1. Открыв транзакцию в обозревателе блоков через кошелек leo wallet
  2. Аналогично прошлому опыту - кран - айди транзакции - путь теперь другой object.fee.transition.outputs[0].value - теперь идем на этот сайт, раздел "records". В первое поле вставляем то, что скопировали из данных о транзакции, во второе View key вашего кошелька, сохраняем себе вывод(далее назовем это record)
RECORD="<record>"
#заменить <record> на то, что вы сохраняли чуть раньше с сайта алео тулз
#либо на рекорд, который вы брали с обозревателя блоков
snarkos developer execute "${APPNAME}.aleo" "main" "1u32" "2u32" --private-key "${PRIVATEKEY}" --query "https://vm.aleo.org/api" --broadcast "https://vm.aleo.org/api/testnet3/transaction/broadcast" --fee 5000000 --record "${RECORD}"

Awesome! You have successfully deployed and executed a Leo application to Testnet III, how exciting 🎉

Спасибо за внимание и поздравляю с новой нодой!
С уважением, Ваша @kulikovae!

Smart Hamster Nodes Studio
Курс "Обучение по нодам" тут!
Наша новостная группа тут!

Наш ютуб тут!