Aleo Deploy | Алео деплой смарт-контракта
Требования к серверу
Достаточно большие для некоторых отдельных компонентов, но поскольку нам не для работы, а просто задеплоить контракт, то я решила попробовать я взяла СPX31 хетцнере
Для начала запросите токены через отправку смс тут и когда вам прийдет вторая смс с хешем - приступайте! Токены запрашивать на кошелек, есть два варианта где где его взять:
- Переходите по ссылке и создаете кошелек (либо загружаете с приватного ключа)
- Устанавливаете браузерное расширение 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)
Теперь наша задача получить рекорд, это можно сделать двумя путями:
- Открыв транзакцию в обозревателе блоков через кошелек leo wallet
- СНАЧАЛА ПРОЧИТАЙТЕ ВЕСЬ АБЗАЦ ВО ИЗБЕЖАНИЕ КУЧИ ВОПРОСОВ)))
В новом кране вбиваем в поиск свой кошелек, видим строку с транзакцией - нажимаем на 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... (взять с терминала в строке, как на скрине ниже) - нажимаем на поиск - должно выдать ответ
Выполняем смарт контракт
Нам нужно достать рекорд, только теперь с транзакции на деплой смарт контракта, у нас два варианта:
- Открыв транзакцию в обозревателе блоков через кошелек leo wallet
- Аналогично прошлому опыту - кран - айди транзакции - путь теперь другой 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 🎉