March 5, 2022

Гайд по установке ноды Subspace на Linux сервер

Обновлено 19.04.2022

ЭТОТ ГАЙД БОЛЬШЕ НЕ ПОДДЕРЖИВАЕТСЯ. Это означает, что сейчас установка будет работать, но с выходом новых релизов ноды инструкция не будет обновляться. Появилась официальная инструкция по установке ноды через docker. Теперь для унификации установки рекомендуется именно она. Здесь мой новый гайд на русском как установить ноду или переехать с systemd на docker.

Оглавление

Сайт https://subspace.network/

Discord проекта https://discord.gg/KKR7K3H2Kg

Официальная документация по установке на github https://github.com/subspace/subspace/blob/main/docs/farming.md

Установка с нуля

Скачиваем исполняемые файлы и создаем системного пользователя

cd $HOME
sudo apt update && sudo apt upgrade -y
sudo apt install wget -y
wget -O subspace-node https://github.com/subspace/subspace/releases/download/snapshot-2022-mar-09/subspace-node-ubuntu-x86_64-snapshot-2022-mar-09
wget -O subspace-farmer https://github.com/subspace/subspace/releases/download/snapshot-2022-mar-09/subspace-farmer-ubuntu-x86_64-snapshot-2022-mar-09
sudo mv subspace* /usr/local/bin/
sudo chmod +x /usr/local/bin/subspace*

sudo adduser --system --home=/var/lib/subspace subspace

Указываем адрес кошелька для получения вознаграждения и имя ноды. Адрес можно получить здесь https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ffarm-rpc.subspace.network#/accounts

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

SUBSPACE_WALLET_ADDRESS="адрес для получения вознаграждения"
SUBSPACE_NODE_NAME="имя вашей ноды"

Создаем сервисные файлы (вставить в консоль каждый блок целиком ничего не меняя)

printf "[Unit]
Description=Subspace Node
After=network.target
[Service]
Type=simple
User=subspace
ExecStart=$(which subspace-node) \\
            --chain testnet \\
            --wasm-execution compiled \\
            --execution wasm --bootnodes \"/dns/farm-rpc.subspace.network/tcp/30333/p2p/12D3KooWPjMZuSYj35ehced2MTJFf95upwpHKgKUrFRfHwohzJXr\" \\
            --rpc-cors all \\
            --rpc-methods unsafe \\
            --ws-external \\
            --validator \\
            --telemetry-url \"wss://telemetry.polkadot.io/submit/ 1\" \\
            --telemetry-url \"wss://telemetry.subspace.network/submit 1\" \\
            --name $SUBSPACE_NODE_NAME
Restart=always
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/subspace-node.service
printf "[Unit]
Description=Subspace Farmer
Requires=subspace-node.service
After=network.target
After=subspace-node.service
[Service]
Type=simple
User=subspace
ExecStart=$(which subspace-farmer) farm --reward-address $SUBSPACE_WALLET_ADDRESS
Restart=always
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/subspace-farmer.service

sudo systemctl daemon-reload
sudo systemctl enable subspace-node subspace-farmer
sudo systemctl restart subspace-node subspace-farmer

Обновление

Если вы только что установили ноду, то обновлять ничего не нужно.

На случай, если переменная окружения не сохранилась, задаем имя заново:

SUBSPACE_NODE_NAME="имя ноды"

Останавливаем ноду:

sudo systemctl stop subspace-node

Пересоздаем сервисный файл:

printf "[Unit]
Description=Subspace Node
After=network.target
[Service]
Type=simple
User=subspace
ExecStart=$(which subspace-node) \\
            --chain testnet \\
            --wasm-execution compiled \\
            --execution wasm --bootnodes \"/dns/farm-rpc.subspace.network/tcp/30333/p2p/12D3KooWPjMZuSYj35ehced2MTJFf95upwpHKgKUrFRfHwohzJXr\" \\
            --rpc-cors all \\
            --rpc-methods unsafe \\
            --ws-external \\
            --validator \\
            --telemetry-url \"wss://telemetry.polkadot.io/submit/ 1\" \\
            --telemetry-url \"wss://telemetry.subspace.network/submit 1\" \\
            --name $SUBSPACE_NODE_NAME
Restart=always
RestartSec=10
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/subspace-node.service

Перезапускаем ноду:

sudo systemctl daemon-reload
sudo systemctl restart subspace-node

Новая телеметрия без ограничения в 1000 нод будет доступна по адресу:

https://telemetry.subspace.network

Полезные команды

Посмотреть логи ноды и фармера:

journalctl -u subspace-node -f -o cat
journalctl -u subspace-farmer -f -o cat

Перезапуск ноды и фармера:

sudo systemctl restart subspace-node
sudo systemctl restart subspace-farmer

Также свою ноду можно найти по имени в телеметрии (просто начните набирать имя для поиска):

https://telemetry.subspace.network

Телеметрия дотсамы с ограничением в 1000 нод (свою можно там и не найти):

https://telemetry.polkadot.io/#list/0x332ef6e751e25426e38996c51299dfc53bcd56f40b53dce2b2fc8442ae9c4a74

Решение проблем

Если вместо логов вы видите "No journal files were found" нужно добавить в файл /etc/systemd/journald.conf параметр Storage=persistent или раскомментировать существующий. После этого перезапустить сервис:

sudo systemctl restart systemd-journald

Удаление ноды

sudo systemctl stop subspace-node subspace-farmer
sudo systemctl disable subspace-node subspace-farmer
sudo deluser subspace
sudo rm -rf /var/lib/subspace
sudo rm -rf /root/.local/share/subspace*
sudo rm /usr/local/bin/subspace*
sudo rm /etc/systemd/system/subspace*