Тестнет на нодах Lava
Lava Network, - это первый протокол для децентрализованного блокчейна RPC и API. Протокол Lava направлен на обеспечение децентрализованного и масштабируемого доступа к данным блокчейна за счет использования сети поставщиков и потребителей. Он использует механизм консенсуса Proof-of-Stake и стимулирует участников за счет использования собственного токена LAVA. В данном гайде мы рассмотрим, как пошагово поднять ноду Lava. А подробнее с анализом проекта от нашей команды вы можете ознакомиться по ссылке.
Зачем участвовать?
В настоящее время идет первая фаза тестнета. Официально тестнет не вознаграждается. Однако венчурные проекты часто анонсируют неоплачиваемый тестнет, чтобы "отсечь" абузеров. А потом тестеров могут вознаградить следующими опциями:
- Раздать дроп
- Дать доступ к участию в следующей фазе тестнета, за которую может быть обещано вознаграждение
- Дать доступ к участию в Private раунде
Проект привлек большой объем инвестиций в размере 250 000$.
Требования к оборудованию и ПО
- Оперативная память RAM 8 ГБ
- 100 ГБ SSD
- 4 ядра 2.0 ГГц х64
- Операционная система Ubuntu 20 или более поздняя версия
Самый оптимальный облачный сервер по цене под этот проект можно арендовать на Macloud. По ссылке скидка 10%. Настройки сервера представлены на скриншоте ниже:
Стоимость такого сервера 2242.5 рублей в месяц.
Поднимаем ноду
Получаем доступ к серверу через терминал
Далее, когда у нас есть сервер, необходимо поднять ноду. Для этого нам потребуется терминал Termius. Скачать можно по ссылке
Для доступа нам потребуется IP сервера и пароль. IP можно взять прямо на главной странице с серверами. На скриншоте он зачеркнут красным.
Чтобы получить пароль, необходимо сперва нажать на сам сервер, затем выбрать вкладку "Доступ" и просмотреть пароль (нажать на глазик).
3. Заходим на сервер через терминал
Далее идем в Termius во вкладку Hosts -> Add -> New Host
После чего справа в поле Adress вводим наш IP сервера и нажимаем стрелочку, как на скриншоте ниже.
Далее у нас открывается вот такое окно, как показано ниже. В поле Username вводим "root". Далее вводим пароль, который мы посмотрели на macloud (пункт 2).
После чего открывается консоль, которая выглядит примерно вот так:
Устанавливаем ПО
sudo apt update
sudo apt install -y unzip logrotate git jq sed wget curl coreutils systemd
Затем когда всплывет окно - нажимаем Enter на клавиатуре.
Создаем папку temp для инсталляции
temp_folder=$(mktemp -d) && cd $temp_folder
go_package_url="https://go.dev/dl/go1.18.linux-amd64.tar.gz"
go_package_file_name=${go_package_url##*\/}
wget -q $go_package_url
sudo tar -C /usr/local -xzf $go_package_file_name
echo "export PATH=\$PATH:/usr/local/go/bin" >>~/.profile
echo "export PATH=\$PATH:\$(go env GOPATH)/bin" >>~/.profile
source ~/.profile
Устанавливаем ноду
Загружаем конфигурацию установки
git clone https://github.com/lavanet/lava-config.git
cd lava-config/testnet-1
source setup_config/setup_config.sh
Устанавливаем конфигурацию приложения Lava по умолчанию
echo "Lava config file path: $lava_config_folder"
mkdir -p $lavad_home_folder
mkdir -p $lava_config_folder
cp default_lavad_config_files/* $lava_config_folder
cp genesis_json/genesis.json $lava_config_folder/genesis.json
Подключаемся к тестнету
Установим Cosmovisor - автообновление. Перейдем к установке Cosmovisor
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
mkdir -p $lavad_home_folder/cosmovisor
wget https://lava-binary-upgrades.s3.amazonaws.com/testnet/cosmovisor-upgrades/cosmovisor-upgrades.zip
unzip cosmovisor-upgrades.zip
cp -r cosmovisor-upgrades/* $lavad_home_folder/cosmovisor
echo "# Setup Cosmovisor" >> ~/.profile
echo "export DAEMON_NAME=lavad" >> ~/.profile
echo "export CHAIN_ID=lava-testnet-1" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.lava" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=true" >> ~/.profile
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profile
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profile
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile
source ~/.profile
$lavad_home_folder/cosmovisor/genesis/bin/lavad init \
my-node \
--chain-id lava-testnet-1 \
--home $lavad_home_folder \
--overwrite
cp genesis_json/genesis.json $lava_config_folder/genesis.json
echo "[Unit]
Description=Cosmovisor daemon
After=network-online.target
[Service]
Environment="DAEMON_NAME=lavad"
Environment="DAEMON_HOME=${HOME}/.lava"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
User=$USER
ExecStart=${HOME}/go/bin/cosmovisor start --home=$lavad_home_folder --p2p.seeds $seed_node
Restart=always
RestartSec=3
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
" >cosmovisor.service
sudo mv cosmovisor.service /lib/systemd/system/cosmovisor.service
Даем доступ Cosmovisor к автообновлениям
sudo systemctl daemon-reload
sudo systemctl enable cosmovisor.service
sudo systemctl restart systemd-journald
sudo systemctl start cosmovisor
Проверка статуса ноды
Проверяем настройки Cosmovisor
sudo systemctl status cosmovisor
$HOME/.lava/cosmovisor/current/bin/lavad status | jq .SyncInfo.catching_up
Создаем аккаунт и кошелек
Создаем аккаунт. Там, где написано "name_here" - можете задать ваше имя аккаунта
current_lavad_binary="$HOME/.lava/cosmovisor/current/bin/lavad"
ACCOUNT_NAME="name_here"
$current_lavad_binary keys add $ACCOUNT_NAME
После чего отображается имя аккаунта, приватный и публичный ключ
ВАЖНО! Записать эти данные, особенно seed-фразу, так как это единственный способ восстановить кошелек.
Получаем тестовые токены
Далее необходимо получить тестовые токены для тестнета. Для этого необходимо перейти в Discord по ссылке
Пройти верификацию в дискорде как валидатор. Слева появится ветка "faucet". Там в чат необходимо ввести:
$request adress
где adress - тот самый адрес, который был получен при создании кошелька и аккаунта. Он начинается с lava@
Далее мы можем подключиться к тестнету либо как валидатор, либо как провайдер. Особой разницы нет. Технически проще стать валидатором, поэтому в статье опишем именно этот путь.
Подключаемся как валидатор
Проверяем, что нода запущена и подключена к сети. Для этого в Termius вводим команду:
$current_lavad_binary status | jq .SyncInfo.catching_up
Должно быть написано "false". Если не так - необходимо подождать какое-то время. У меня ушли сутки.
Проверяем, что тестовые токены получены:
YOUR_ADDRESS=$($current_lavad_binary keys show -a $ACCOUNT_NAME)
$current_lavad_binary query \
bank balances \
$YOUR_ADDRESS \
--denom ulava
Сохраняем публичный ключ валидатора командой:
$current_lavad_binary tendermint show-validator
Он пригодится нам для восстановления валидатора на случай, если вы перенесете свой валидатор на другой сервер или случайно потеряете доступ к своему валидатору.
Для примера здесь написано 100000ulava и <<moniker_node>>. Вы можете указать ваше количество и задать удобное вам имя ноды.
$current_lavad_binary tx staking create-validator \
--amount="100000ulava" \
--pubkey=$($current_lavad_binary tendermint show-validator --home "$HOME/.lava/") \
--moniker="<<moniker_node>>" \
--chain-id=lava-testnet-1 \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="10000" \
--gas="auto" \
--gas-adjustment "1.5" \
--gas-prices="0.05ulava" \
--home="$HOME/.lava/" \
--from=$ACCOUNT_NAME
Проверяем настройки валидатора:
block_time=60
Проверяем, что нода валидатора зарегистрирована
validator_pubkey=$($current_lavad_binary tendermint show-validator | jq .key | tr -d '"')
$current_lavad_binary q staking validators | grep $validator_pubkey
Проверяем voting power ноды. Необходимо подождать 30-60 секунд. Выходной параметр должен быть больше нуля:
sleep $block_time
$current_lavad_binary status | jq .ValidatorInfo.VotingPower | tr -d '"'
Поздравляем, вы подняли ноду и стали валидатором в тестнете LavaNetwork!
Не является индивидуальной инвестиционной рекомендацией!
Материал подготовлен для закрытого клуба инвесторов CryptoClub Юрия Овчарова.