September 20

Vana. Устанавливаем ноду

CryptoFortochka — гайды, ноды, новости, тестнеты

Vana — это новый пользовательский AI чейн работающий через пользовательские данные

  • Инвестировали: $25 000 000
  • Инвесторы: Paradigm, Polychain, Coinbase Ventures и другие
  • Характеристики: 1CPU/8RAM/10SSD - минимальные
  • Арендовать сервер: XorekCloud, Pqhosting
  • Чат и канал с поддержкой: https://t.me/fortochat / https://t.me/cryptoforto

Данный проект был добавлен в таблицу Retroactive

Пару дней назад, объявили о новом инвест раунде, в котором инвестировали тир1 фонды, проект находится на ранней стадии, и у нас есть возможность занять early позицию

На данный момент, у проекта присутствует: тап-фармилка в телеграме, роли в дискорде, активности в тестовой сети, в том числе и нода

Вы просили сделать гайд на ноду, как и обещал, сделал подробную и понятную инструкцию, нода - не из легких, но, я постарался разъяснить установку от А до Я

Сервер можно арендовать на XorekCloud за 749 рублей в месяц

Устанавливаем необходимые зависимости

  • Подключаемся на арендованный сервер через root
  • Выполняем команды по списку
  • Обновляем и устанавливаем необходимые пакеты
sudo apt update && sudo apt upgrade -y

По окончании обновления возможно вы увидите вопрос о перезагрузки сервисов (как на скрине ниже), то нажмите цифру 8 и потом Enter. Если в дальнейшем будет появляться такой экран, то всегда повторяйте эту процедуру — цифра 8 и потом Enter

  • Устанавливаем Git, Unzip, Nano
sudo apt-get install git -y
sudo apt install unzip
sudo apt install nano
  • Устанавливаем Python
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa

Нужно будет нажать Enter

sudo apt update
sudo apt install python3.11 -y
  • Проверяем правильность установки
python3.11 --version

Если команда показывает Python 3.11.10, то всё установилось верно

  • Устанавливаем Poetry
sudo apt install python3-pip python3-venv curl -y
curl -sSL https://install.python-poetry.org | python3 -
export PATH="$HOME/.local/bin:$PATH"
source ~/.bashrc
  • Проверяем правильность установки
poetry --version

Если команда показывает Poetry version x.x.x, то всё установилось верно (вместо x.x.x покажет номер версии)

  • Устанавливаем Node.js и npm
curl -fsSL https://fnm.vercel.app/install | bash

Это нормальный вывод после этой команды, не пугайтесь

source ~/.bashrc
fnm use --install-if-missing 22
  • Проверяем правильность установки
node -v && npm -v

Если команда показывает v22.9.0 и 10.8.3, то всё установилось верно

  • Устанавливаем зависимости
apt-get install nodejs -y
npm install -g yarn
  • Проверяем правильность установки
yarn --version

Если команда показывает версию, то всё установилось верно

Установка ноды

  • Клонируем репозиторий и заходим в него
git clone https://github.com/vana-com/vana-dlp-chatgpt.git
cd vana-dlp-chatgpt
  • Создаем .env файл
cp .env.example .env
  • Устанавливаем зависимости
poetry install
  • Устанавливаем CLI
pip install vana
  • Создаем кошелек
vanacli wallet create --wallet.name default --wallet.hotkey default

Вам нужно будет придумать и ввести пароль, не забудьте записать этот пароль. Также вам выдаст две мнемоник-фразы — Coldkey и Hotkey, обязательно сохраните их

  • Добавляем сеть Vana Moksha Testnet в EVM-кошелек (Metamask, Rabby и т.п.)

Network name: Vana Moksha Testnet

RPC URL: https://rpc.moksha.vana.org

Chain ID: 14800

Currency: VANA

Block Explorer: https://moksha.vanascan.io

  • Экспортируем и сохраняем приватные ключи

Делаем для Coldkey

vanacli wallet export_private_key
Enter wallet name (default): жмите Enter
Enter key type [coldkey/hotkey] (coldkey): жмите Enter
Do you understand the risks? (yes/no): yes
Enter your coldkey password: введите ранее сохраненный пароль

После этого терминал выдаст ваш приватный ключ от Coldkey — обязательно сохраните его

Делаем для Hotkey

vanacli wallet export_private_key
Enter wallet name (default): жмите Enter
Enter key type [coldkey/hotkey] (coldkey): hotkey
Do you understand the risks? (yes/no): yes

После этого терминал выдаст ваш приватный ключ от Hotkey — обязательно сохраните его

Работа с кошельком Metamask

  • Нажимаем на список аккаунтов
  • Нажимаем на кнопку "Добавить счет или аппаратный кошелек"
  • Нажимаем "Импортировать счет"
  • Вписываем ваш приватный ключ от Coldkey
  • Нажимаем кнопку "Импорт"

Повторяем все то же самое для второго приватного ключа от Hotkey

Кран даёт токены раз в сутки, поэтому после запроса на первый кошелёк, включите VPN, обновите страницу и запросите токены на второй кошелёк. Можно не подписываться на Twitter, просто нажмите на кнопку и закройте Twitter

Создание DLP

  • Генерация ключей
./keygen.sh

Нас попросит ввести моникер (название), почту и срок действия ключей(по умолчанию 0, так и оставляем, поэтому просто нажмите Enter)

Будет сгенерировано 4 ключа

  • public_key.asc и public_key_base64.asc (для UI)
  • private_key.asc и private_key_base64.asc (для валидатора)

Деплой в сети Moksha

  • Останавливаем ноду
sudo systemctl stop vana.service

Добавляем Vana Moksha Testnet в свой Metamask:

Network name: Vana Moksha Testnet
RPC URL: https://rpc.moksha.vana.org
Chain ID: 14800
Currency: VANA
Block Explorer: https://moksha.vanascan.io

Запрашиваем тестовые токены на свой Coldkey кошелек в Discord в канале #data-contributors. Нужно просто написать что-то типа: "Please give me some Moksha network test coins" и указывайте адрес своего Coldkey кошелька. Обратите внимание, что на Hotkey токенов вам не дадут, так что можете не указывать. Админы присылают 1 VANA на Coldkey кошелек, поэтому я просто переслал половину себе на Hotkey

Деплой смарт-контракта DLP

  • Удаляем старую папку для деплоя, скачиваем новую и переходим в неё
cd $HOME
rm -rf vana-dlp-smart-contracts
git clone https://github.com/Josephtran102/vana-dlp-smart-contracts
cd vana-dlp-smart-contracts
  • Устанавливаем yarn и проверяем его версию
npm install -g yarn
yarn --version
  • Устанавливаем зависимости
yarn install
  • Создаём файл .env и редактируем его
cp .env.example .env
nano .env
  • Меняем следующие строчки

Сохраняем последовательным нажатием Cntr+X, Y, Enter

DEPLOYER_PRIVATE_KEY=0x... (ваш coldkey приватный ключ) OWNER_ADDRESS=0x... (ваш coldkey адрес кошелька) DLP_NAME=... (ваше DLP имя (придумайте)) DLP_TOKEN_NAME=... (ваше DLP имя токена) DLP_TOKEN_SYMBOL=... (ваш DLP токен символ)

Обратите внимание, что теперь в этом файле есть данные и для сети Moksha

  • Деплоим контракт

Если на кошельке не будет тестовых токенов, то деплой выдаст ошибку. Не нужно пытаться деплоить, пока вы не убедитесь, что на Coldkey и Hotkey есть тестовые токены

npx hardhat deploy --network moksha --tags DLPDeploy

Также стоит отметить, что теперь после деплоя не нужно будет вручную вызывать те две функции, которые мы делали в Satori, здесь всё делается автоматически

Как и раньше, нужно сохранить вывод после деплоя, а именно DataLiquidityPoolToken и DataLiquidityPool, эти два адреса нам понадобятся при запуске валидатора.

Установка валидатора

  • Создаём OpenAI API

Для этого переходим по этой ссылке, авторизуемся в своем аккаунте или создаем новый, нажимаем на кнопку "+Create new secret key", вписываете любое имя, создаем API и обязательно копируем в надежное место

  • Вытягиваем публичный ключ
cat /root/vana-dlp-chatgpt/public_key_base64.asc

Это команда выдаст огромный набор цифр, букв и символов, весь этот огромный вывод сохраните в надежное место

  • Переходим в папку vana-dlp-chatgpt
cd
cd vana-dlp-chatgpt
  • Редактируем .env
nano .env

• Удаляем всё содержимое файла и вставляем этот блок

# The network to use, currently Vana Moksha testnet
OD_CHAIN_NETWORK=moksha
OD_CHAIN_NETWORK_ENDPOINT=https://rpc.moksha.vana.org

# Optional: OpenAI API key for additional data quality check
OPENAI_API_KEY="ВАШ_API_КЛЮЧOPENAI_API_KEY_sk-aIKhy1wmK6Vfx.............._CIJvZx7uZl2HjAA"

# Optional: Your own DLP smart contract address once deployed to the network, useful for local testing

DLP_MOKSHA_CONTRACT=ВАШ_DataLiquidityPool
# Optional: Your own DLP token contract address once deployed to the network, useful for local testing

DLP_TOKEN_MOKSHA_CONTRACT=ВАШ_DataLiquidityPoolToken

# The private key for the DLP, follow "Generate validator encryption keys" section in the README
PRIVATE_FILE_ENCRYPTION_PUBLIC_KEY_BASE64="ВАШ_ОГРОМНЫЙ_ВЫВОД"

• В этом блоке заменяем на свои значения следующие поля:

• Сохраняем последовательным нажатием Cntr+X, Y, Enter

DLP_MOKSHA_CONTRACT=0x... (DataLiquidityPool address)

DLP_TOKEN_MOKSHA_CONTRACT=0x... (DataLiquidityPoolToken address)

PRIVATE_FILE_ENCRYPTION_PUBLIC_KEY_BASE64=... (content of public_key_base64.asc)

  • Импортируем свой токен в Metamask на адрес Coldkey, для этого идем сюда

• И вставляем контракт своего токена, это адрес DataLiquidityPoolToken

• Тут отобразиться ваш токен, который вы деплоили

Отправьте 10 токенов (у меня это LOCI) на свой Hotkey кошелек и на свой Coldkey кошелек (в официальной документации так и сказано)

  • Регистрируем нашего валидатора
./vanacli dlp register_validator --stake_amount 10

Два раза нажимаем Enter и вводим пароль, который сохраняли ранее

./vanacli dlp approve_validator --validator_address=<ВАЩ_АДРЕС_КОШЕЛЬКА_HOTKEY>

Один раз нажимаем Enter и вводим пароль, который сохраняли ранее

  • Запускаем валидатора
poetry run python -m chatgpt.nodes.validator

Нормальные логи выглядят так

Теперь нажимаем Ctrl+C и останавливаем валидатора

  • Создаем сервисный файл, чтобы валидатор работал в фоновом режиме. Для этого ищем путь к poetry
echo $(which poetry)

В моём случае это:

  • Команда для создания сервисного файла, не забудьте заменить пути к poetry, если у вас он отличается (копируйте весь блок и вставляйте в терминал)
sudo tee /etc/systemd/system/vana.service << EOF
[Unit]
Description=Vana Validator Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/vana-dlp-chatgpt
ExecStart=/root/.local/bin/poetry run python -m chatgpt.nodes.validator
Restart=on-failure
RestartSec=10
Environment=PATH=/root/.local/bin:/usr/local/bin:/usr/bin:/bin:/root/vana-dlp-chatgpt/myenv/bin
Environment=PYTHONPATH=/root/vana-dlp-chatgpt

[Install]
WantedBy=multi-user.target
EOF
  • Запускаем сервис
sudo systemctl daemon-reload && \
sudo systemctl enable vana.service && \
sudo systemctl start vana.service && \
sudo systemctl status vana.service

Данный вывод показывает, что всё OK

  • Проверяем логи
sudo journalctl -u vana.service -f

Данная статья была написана каналом Crypto Fortochka