March 30, 2023

Fuel - деплой смарт-контракта и прохождение тестнета

Данная статья подготовлена командой DAO Crypto. Мы есть в Youtube и Telegram

Все наши уроки и статьи тут

Видео гайд по ссылке

Содержание


Fuel Network — это модульный уровень выполнения для Ethereum. Fuel Network предлагает другой подход к модульности, когда исполнительный уровень отделен от доступности данных и консенсуса. Такое разделение позволяет специализироваться на базовом уровне, предлагая больший потенциал масштабируемости.

Fuel Network привлек $80 млн. от таких инвесторов, как Blockchain Capital, Stratos Technologies, CoinFund, Bain Capital Crypto и других.

Проект весьма перспективный и стоит того, чтобы обратить на него внимание. На данный момент мы можем поучаствовать, во-первых, загрузив смарт-контракт, а во-вторых, протестировав кошелек проекта.

Если у вас еще нет опыта по деплою смарт-контракта

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

Смотрите это видео здесь 👉 ссылка

В нем рассказано и про MobaXterm, и про аналоги на Mac, и про SSH ключ. К уроку идет подробная статья, пошагово рассказывающая о создании SSH ключа и подключении к серверу через MobaXterm с его помощью.

Статья про создание SSH-ключа 👉 ссылка

Подключение к серверу через SSH-клиент 👉 ссылка

И еще статья по кранам в Тестовой сети Goerli 👉 ссылка

Сохраняйте себе эти полезные статьи, чтобы у вас больше не возникало вопросов по работе с серверами и все получалось с первого раза!

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

Для разворачивания смарт-контракта достаточно будет сервера с минимальными техническими характеристиками (например: Процессор: 1 core Память: 1 ГБ Хранилище: 30 ГБ Трафик: 32 ТБ). Такой сервер можно арендовать на Vdsina

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

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

Сервер создан. Копируем его IP-адрес.

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

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

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

Сервер запущен:

Разворачиваем смарт-контракт

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

Готовим сервер

sudo apt update
sudo apt upgrade -y

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

sudo apt install curl make clang vim pkg-config libssl-dev build-essential git mc jq unzip wget -y
curl https://sh.rustup.rs -sSf | sh

Вводим с клавиатуры 1 и ENTER для продолжения

Вводим следующие команды:

source $HOME/.cargo/env

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

curl --proto '=https' --tlsv1.2 -sSf https://install.fuel.network/fuelup-init.sh | sh

Жмем У и ENTER для продолжения


Далее может возникнуть проблема с исполнением команд. Чтобы ее избежать, открываем новую вкладку терминала и продолжаем вводить команды уже в этой вкладке.

Чтобы открыть новую вкладку терминала в MobaXterm нужно нажать на название вкладки правой клавишей мыши, выбрать пункт "Duplicate tab". Дальше можно работать в этой новой вкладке, а первую закрыть.

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

cd $HOME/.fuelup/
fuelup self update
fuelup toolchain install beta-3
fuelup default beta-3

Создаем контракт

mkdir fuel-project && cd fuel-project
forc new counter-contract
vim counter-contract/src/main.sw

Далее откроется файл с текстом контракта. Вводим с клавиатуры i, после чего в окне терминала внизу появится слово INSERT.

Нам нужно удалить весь текст контракта, который мы видим, и на его место вставить следующий:

contract;

storage {
counter: u64 = 0,
}

abi Counter {
#[storage(read, write)]
fn increment();

#[storage(read)]
fn count() -> u64;
}

impl Counter for Contract {
#[storage(read)]
fn count() -> u64 {
storage.counter
}

#[storage(read, write)]
fn increment() {
storage.counter = storage.counter + 1;
}
}

Далее нажимаем ESC и вводим с клавиатуры :w, затем ENTER. Вводим с клавиатуры :q и нажимаем ENTER.

Далее продолжаем вводить команды в терминале:

cd counter-contract/
forc build

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

Вводим команду

forc-wallet new

Далее нам нужно придумать и подтвердить пароль. Он не отображается при вводе, поэтому пишем внимательно и сохраняем пароль у себя.

После этого на экране появится сид-фраза. Обязательно ее сохраням!
Далее жмем любую клавишу для выхода.

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

forc-wallet account new

Далее нужно будет ввести пароль, который задавали шагом выше.

Отобразится адрес кошелька. Сохраняем его.

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

Далее на этот кошелек нам нужно запросить тестовые токены. Переходим на сайт и вводим адрес кошелька. Проходим капчу и запрашиваем токены.

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

И видим, что токены поступили на баланс:

Возвращаемся к окну терминала и продолжаем вводить команды.

forc deploy --node-url beta-3.fuel.network/graphql --gas-price 1 --random-salt

Появится запрос с адресом кошелька. Вставляем адрес, нажимаем ENTER.

После этого отобразится Transaction id to sign, нам нужно скопировать это значение, но так, чтобы не слетела команда.

Для того, чтобы скопировать Transaction id и не сбросить команду, нужно просто два раза кликнуть левой кнопкой мыши по нему, не использовать клавиши CTRL+C. После этого значение можно будет вставить уже к себе в блокнот нажатием CTRL+V.

Теперь работаем в двух вкладках сервера. Открываем еще одну, новую вкладку на том же сервере: нужно нажать на название вкладки правой клавишей мыши, выбрать пункт "Duplicate tab", после этого откроется новая вкладка. Теперь будем вводить команду в ней.

В следующую команду в блокноте вместо Transaction id подставляем свои значения, которые только что скопировали на первой вкладке терминала.

forc wallet sign --account 0 tx-id Transaction id
ПРИМЕР ТОГО, КАК МОЖЕТ ВЫГЛЯДЕТЬ ТАКАЯ КОМАНДА (ЭТОТ ПРИМЕР ВСТАВЛЯТЬ НЕ НУЖНО):
forc wallet sign --account 0 tx-id 38fb3540ce6642fdFGH789DLKJ879e0f35a383efc9729f02156cc1a2

После того, как подготовили свою команду в блокноте, копируем ее и вставляем во вторую вкладку терминала, нажимаем ENTER.
Вводим пароль, который придумали при создании кошелька.

После этого перед нами отобразится строчка Signature, копируем значение из нее.

Возвращаемся в первую вкладку терминала и вводим только что скопированное значение Signature, нажимаем ENTER.

Дожидаемся выполнения команды, после чего увидим надпись о загрузке контракта:

Убедиться в том, что контракт загружен, можно в эксплорере. Для этого переходим по ссылке и вводим в строку поиска адрес своего кошелька.

Далее видим список транзакций.

Среди последних транзакций находим ту, у которой значение Tx Hash совпадает со значением Transaction id, которое мы вставляли в команду в блокноте, открываем ее. И видим, что она имеет статус Success, значит все прошло успешно.

Если вы хотите загрузить еще один смарт-контракт

Для деплоя еще одного контракта не нужно удалять сервер. А также можно оставить обе вкладки в окне MobaXterm и продолжать работать в них.

Чтобы удалить данные предыдущего контракта, вводим в первой вкладке терминала следующие команды:

cd $HOME/
rm -rf $HOME/.fuelup/fuel-project
rm -rf $HOME/.fuel/wallets/
cd $HOME/.fuelup/

А далее переходим к пункту "Создаем контракт" и по-новой выполняем все действия, начиная с него.

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

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

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

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

Здесь можно переустановить систему на сервере и таким образом удалить все изменения на нем.

Тестируем кошелек Fuel

1. Устанавливаем кошелек Fuel wallet

Для того, чтобы установить кошелек Fuel себе в браузер, переходим на сайт и нажимаем кнопку Download Fuel Wallet. После этого на компьютер скачается ZIP-файл кошелька.

Переходим в Управление расширениями в браузере Chrome

Включаем Режим разработчика. После этого перетаскиваем ZIP-файл кошелька из папки, в которую он загружен, на пустое место в списке расширений, после этого расширение установится.

Открываем расширение Fuel Wallet. При деплое смарт-контракта мы уже создали кошелек, поэтому нажимаем кнопку I already have a wallet.

Вводим сид-фразу от нашего кошелька. Нажимаем Next. После этого вводим пароль.

В итоге кошелек готов к работе.

2. Получаем тестовые токены

Мы уже получали тестовые токены во время деплоя смарт-контракта, бОльшая их часть должна остаться на кошельке.

Но если вам нужно запросить еще, то возвращаемся к этому пункту и следуем инструкциям.

3. Тестируем кошелек Fuel Wallet

Для того, чтобы протестировать кошелек Fuel, переходим на сайт.

Прокручиваем страницу до раздела Request connection и нажимаем кнопку Connect.

Подтверждаем в кошельке.

Далее проходим по всем разделам на этой странице и выполняем действия, представленные в них.

  • Получаем список своих кошельков

Для этого нажимаем кнопку Get accounts, после чего внизу увидим список своих кошельков

  • Получаем адрес кошелька, который активен в данный момент

Для этого нажимаем кнопку Get current account, после чего внизу увидим адрес кошелька, который активен в данный момент

  • Подписываем сообщение

Нажимаем кнопку Sign Message. Затем подтверждаем действие в кошельке. После этого увидим ID транзакции внизу.

  • Переводим активы

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

После этого нажимаем кнопку Transfer и подтверждаем транзакцию в кошельке.

После этого внизу отобразится ID транзакции и мы сможем открыть ее в эксплорере.

  • Просматриваем список активов в кошельке

Для этого нажимаем кнопку Get assets, после чего внизу увидим список активов, которые есть в кошельке

  • Добавляем свой актив

Для того, чтобы добавить свой актив, заполняем поля - адрес контракта, название, тикер, ссылка на изображение. И нажимаем кнопку Add Assets

После этого заходим в свой кошелек Fuel, открываем меню (три полоски в верхнем правом углу) и выбираем Settings - Assets

В списке активов увидим только что добавленный токен.

Старайтесь периодически заходить на сайт и проявлять активность в кошельке: подписывайте сообщения, переводите средства и добавляйте активы.

Свои транзакции можно посмотреть в эксплорере. Нужно ввести в строке поиска адрес вашего кошелька и нажать Enter. После этого появится список транзакций на кошельке.

4. Оставляем отзыв

Чтобы оставить отзыв о работе кошелька, присоединяемся к дискорду проекта.

Затем находим канал #wallet-feedback и в нем отправляем сообщение со своим отзывом об использовании кошелька Fuel.

Данная статья подготовлена командой DAO Crypto. Мы есть в Youtube и Telegram

Все наши уроки и статьи тут

Видео гайд по ссылке