December 11, 2023

Lava Provider Guide (with AXELAR) - part 2 - provider setup

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

8/16/500

я взяла на хетцнере

Гайд рассчитан на то, что на сервере больше нет космос нод! Если есть - не забудьте разобраться с портами!

Подготовка:

1. Если Вы дошли до этого гайда, значит - вы уже прошли все этапы из этого гайда
2. Берем домен, hostinger или godaddy к примеру

Настраиваем сабдомены (в разделе днс), там где закрашено - айпи сервера:

Ждем мин 10, пока днс подтянется

Идем в терминал:

sudo apt update && sudo apt upgrade -y

sudo apt install certbot net-tools nginx python3-certbot-nginx -y

sudo certbot certonly -d <domain> -d lava.<domain> -d axl.<domain> -d axlt.<domain>
#заменить <domain> на ваш домен
#ответчаем 1(вариант с nginx), потом почта/у

sudo certbot certificates
#из вывода запоминаем Certificate Path и Private Key Path
cd /etc/nginx/sites-available/

Создаем service file для каждой сети(в каждом файле строки ssl_certificate и ssl_certificate_key совпадают с Certificate Path и Private Key Path):

Lava

sudo nano lava_server
#копируем и вставляем все, что ниже в файл

server {
    listen 443 ssl http2;
    server_name lava.<domain>;

    ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
    error_log /var/log/nginx/debug.log debug;

    location / {
        proxy_pass http://127.0.0.1:2224;
        grpc_pass 127.0.0.1:2224;
    }
}

Сохраняем и выходим из нано

Axeral_testnet

sudo nano axlt_server
#копируем и вставляем все, что ниже в файл

server {
    listen 443 ssl http2;
    server_name axlt.<domain>;

    ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
    error_log /var/log/nginx/debug.log debug;

    location / {
        proxy_pass http://127.0.0.1:2223;
        grpc_pass 127.0.0.1:2223;
    }
}

Сохраняем и выходим из нано

Axelar_mainnet

sudo nano axl_server
#копируем и вставляем все, что ниже в файл

server {
    listen 443 ssl http2;
    server_name axl.<domain>;

    ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
    error_log /var/log/nginx/debug.log debug;

    location / {
        proxy_pass http://127.0.0.1:2225;
        grpc_pass 127.0.0.1:2225;
    }
}

Сохраняем и выходим из нано

sudo ln -s /etc/nginx/sites-available/lava_server /etc/nginx/sites-enabled/lava_server

sudo ln -s /etc/nginx/sites-available/axlt_server /etc/nginx/sites-enabled/axlt_server

sudo ln -s /etc/nginx/sites-available/axl_server /etc/nginx/sites-enabled/axl_server

Тест и рестрат ngnix:

sudo nginx -t

sudo systemctl restart nginx

cd

Выкачиваем бинарники lavap:

wget -O $HOME/go/bin/lavap https://github.com/lavanet/lava/releases/download/v0.35.6/lavap-v0.35.6-linux-amd64

chmod 744 $HOME/go/bin/lavap 

lavap version

Проверяем баланс кошелька:

lavap q bank balances $(lavad keys show wallet -a)

Создаем конфигурационные файлы провайдеров:

nano $HOME/.lava/config/lava-provider.yml
#вставляем в файл все, что ниже

endpoints:
  - api-interface: tendermintrpc
    chain-id: LAV1
    network-address:
      address: 0.0.0.0:2224
      disable-tls: true
    node-urls:
      - url: ws://127.0.0.1:26657/websocket
      - url: http://127.0.0.1:26657
  - api-interface: grpc
    chain-id: LAV1
    network-address:
      address: 0.0.0.0:2224
      disable-tls: true
    node-urls: 
      - url: 127.0.0.1:9090
  - api-interface: rest
    chain-id: LAV1
    network-address:
      address: 0.0.0.0:2224
      disable-tls: true
    node-urls: 
      - url: http://127.0.0.1:1317

Сохраняем и выходим из нано

nano $HOME/.axelar_testnet/config/axlt-provider.yml
#вставляем в файл все, что ниже

endpoints:
  - api-interface: tendermintrpc
    chain-id: AXELART
    network-address:
      address: 0.0.0.0:2223
      disable-tls: true
    node-urls:
      - url: ws://127.0.0.1:36657/websocket
      - url: http://127.0.0.1:36657
  - api-interface: grpc
    chain-id: AXELART
    network-address:
      address: 0.0.0.0:2223
      disable-tls: true
    node-urls: 
      - url: 127.0.0.1:9190
  - api-interface: rest
    chain-id: AXELART
    network-address:
      address: 0.0.0.0:2223
      disable-tls: true
    node-urls: 
      - url: http://127.0.0.1:1327

Сохраняем и выходим из нано

nano $HOME/.axelar/config/axl-provider.yml
#вставляем в файл все, что ниже

endpoints:
  - api-interface: tendermintrpc
    chain-id: AXELAR
    network-address:
      address: 0.0.0.0:2225
      disable-tls: true
    node-urls:
      - url: ws://127.0.0.1:46657/websocket
      - url: http://127.0.0.1:46657
  - api-interface: grpc
    chain-id: AXELAR
    network-address:
      address: 0.0.0.0:2225
      disable-tls: true
    node-urls: 
      - url: 127.0.0.1:9290
  - api-interface: rest
    chain-id: AXELAR
    network-address:
      address: 0.0.0.0:2225
      disable-tls: true
    node-urls: 
      - url: http://127.0.0.1:1337

Сохраняем и выходим из нано

Заявляем о себе, как о провайдере:

Транзакция для сети лавы (заменить <moniker> на имя своего провайдера)

lavap tx pairing stake-provider "LAV1" \ 
"50000000000ulava" \ 
"lava.<domain>:443,2,tendermintrpc,rest,grpc" 2 \ 
--from "wallet" \ 
--provider-moniker "<moniker>" \ 
--keyring-backend "test" \ 
--gas="auto" \ 
--gas-adjustment "1.5" \ 
--fees 5000ulava

Транзакция для сети акселар (заменить <moniker> на имя своего провайдера)

lavap tx pairing stake-provider "AXELART" \ 
"50000000000ulava" \ 
"axlt.<domain>:443,2,tendermintrpc,rest,grpc" 2 \ 
--from "wallet" \ 
--provider-moniker "<moniker>" \ 
--keyring-backend "test" \ 
--gas="auto" \ 
--gas-adjustment "1.5" \ 
--fees 5000ulava

Транзакция для сети акселар меиннет (заменить <moniker> на имя своего провайдера)

lavap tx pairing stake-provider "AXELAR" \ 
"50000000000ulava" \ 
"axl.<domain>:443,2,tendermintrpc,rest,grpc" 2 \ 
--from "wallet" \ 
--provider-moniker "<moniker>" \ 
--keyring-backend "test" \ 
--gas="auto" \ 
--gas-adjustment "1.5" \ 
--fees 5000ulava

Создаем сервисные файлы для каждого провайдера:

Lava

sudo tee /etc/systemd/system/provider-lava.service > /dev/null <<EOF
[Unit]
Description=Lava Provider 
After=network-online.target

[Service]
User=$USER
WorkingDirectory=/root/.lava/config
ExecStart=/root/go/bin/lavap rpcprovider lava-provider.yml --geolocation 2 --from wallet --chain-id lava-testnet-2 --keyring-backend test
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable provider-lava
systemctl restart provider-lava && journalctl -u provider-lava -f -o cat

Axelar testnet

sudo tee /etc/systemd/system/provider-axlt.service > /dev/null <<EOF
[Unit]
Description=Axelar Testnet Provider 
After=network-online.target

[Service]
User=$USER
WorkingDirectory=/root/.axelar_testnet/config
ExecStart=/root/go/bin/lavap rpcprovider axlt-provider.yml --geolocation 2 --from wallet --chain-id lava-testnet-2 --keyring-backend test
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable provider-axlt
systemctl restart provider-axlt && journalctl -u provider-axlt -f -o cat

Axelar mainnet

sudo tee /etc/systemd/system/provider-axl.service > /dev/null <<EOF
[Unit]
Description=Axelar Provider 
After=network-online.target

[Service]
User=$USER
WorkingDirectory=/root/.axelar/config
ExecStart=/root/go/bin/lavap rpcprovider axl-provider.yml --geolocation 2 --from wallet --chain-id lava-testnet-2 --keyring-backend test
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable provider-axl
systemctl restart provider-axl && journalctl -u provider-axl -f -o cat

Мы настроили 3 провайдера, посмотрели логи каждого, осталось только разобраться с тем, как их мониторить

Эксплорер провайдеров тут

Обновление 35.8

systemctl stop provider-axlt
systemctl stop provider-axl
systemctl stop provider-lava
wget -O $HOME/go/bin/lavap https://github.com/lavanet/lava/releases/download/v0.35.8/lavap-v0.35.8-linux-amd64

chmod 744 $HOME/go/bin/lavap 

lavap version

Далее перезапускаем сервисные файлы тех провайдеров, которые у вас запущены

Например, lava-provider:

systemctl restart provider-lava && journalctl -u provider-lava -f -o cat

Axelar:

systemctl restart provider-axl && journalctl -u provider-axl -f -o cat

Axelar Testnet:

systemctl restart provider-axlt && journalctl -u provider-axlt -f -o cat