Crypta
September 21

Гайд на ноду Vana

Делаю обещанный гайд на ноду от проекта Vana с общим сбором 25М$ от Paradigm, Coinbase & Polychain. Предупреждаю сразу - нода сложная. Подготовьте блокнот для сохранения данных. Гайд написан автором канала Gentleman's Chronicles - буду рад вашей подписке.

Покупал сервер я на Xorek, купил за 8$, тот, что на скрине. ОС - Ubuntu 22.04

1. Начинаем подготовку сервера

Вводим команды по очереди:

Если же у вас будет вылазить окно с выбором чего-то там - просто нажимайте Enter
sudo apt update && sudo apt upgrade -y
sudo apt-get install git -y
sudo apt install unzip
sudo apt install nano
sudo apt-get install git -y
sudo apt install unzip
sudo apt install nano
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.
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.
curl -fsSL https://fnm.vercel.app/install | bash
source ~/.bashrc
fnm use --install-if-missing 22
node -v && npm -v
Если всё сделано правильно, выведет 2 версии.
apt-get install nodejs -y
npm install -g yarn
yarn --version
Это была только подготовка. Мы устанавливали нужные пакеты и скрипты для работы ноды, дальше будет сложнее.

2. Начинаем установку ноды

git clone https://github.com/vana-com/vana-dlp-chatgpt.git
cd vana-dlp-chatgpt
cp .env.example .env
poetry install
pip install vana
vanacli wallet create --wallet.name default --wallet.hotkey default
Придумываем пароль, его обязательно записываем!

Сохраняем мнемонические фразы от двух кошельков. Подпишите их Coldkey & Hotkey. Ещё пригодится.

vanacli wallet export_private_key
Enter > Enter > Yes > Ваш пароль > сохраняем приватный ключ (Coldkey)
vanacli wallet export_private_key
Enter > Hotkey > Yes > Ваш пароль > сохраняем приватный ключ (Hotkey)

1. Импортируем эти 2 кошелька с помощью приватного ключа в Metamask

2. На каждый кошелек запрашиваем токены из крана

3. Создаём свой токен

cd $HOME
rm -rf vana-dlp-smart-contracts
git clone https://github.com/Josephtran102/vana-dlp-smart-contracts
npm install -g yarn
yarn --version
yarn install
cp .env.example .env
nano .env

Откроется текстовое окно, в него вставляем свои данные:

  • DEPLOYER_PRIVATE_KEY=0x... (Приватный ключ кошелька Coldkey)
    OWNER_ADDRESS=0x... (Адрес кошелька Coldkey)
    DLP_NAME=... (придумываем название контракта)
    DLP_TOKEN_NAME=... (придумываем название токенa)
    DLP_TOKEN_SYMBOL=... (придумываем тикер токена)
Сохраняем и закрываем окно клавишами: Cntr+X > Y > Enter
npx hardhat deploy --network moksha --tags DLPDeploy

Вам выдаст DataLiquidityPoolToken и DataLiquidityPool - сохраняем их.

4. Регистрация и запуск валидатора

Нам нужно создать OpenAI API. Для этого логинимся/регистрируемся и берём его на сайте. Нажимаем Create new secret key > придумываем имя > копируем и сохраняем куда-то.

cat /root/vana-dlp-chatgpt/public_key_base64.asc
В ответ получаем страшных массив букв и чисел. Его нужно скопировать и сохранить.
cd
cd vana-dlp-chatgpt
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"

# 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
Заходим в свой MetaMaskс импортированными кошельками
В Coldkey импортируем наш токен вставляя DataLiquidityPoolToken
10 токенов отправляем на Hotkey & на 10 Coldkey (да, самому себе)
./vanacli dlp register_validator --stake_amount 10
Enter > Ваш пароль
Вот как должно быть.
poetry run python -m chatgpt.nodes.validator

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

Ctrl+C
echo $(which 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

Всё. Нода запущена и работает в оффлайн режиме. Вам нужно только периодически докидывать газ на кошельки. Для проверки работы можете вывести логи:

sudo journalctl -u vana.service -f

Если они идут - всё шикарно.

Я запустил на 3х серверах без ошибок. Чётко по гайду. Если у вас возникают ошибки - пробуйте снова или меняйте сервер/ОС. Держу связь в Gentleman's Chronicles