Гайд по установке ноды Subspace через Docker
Сайт https://subspace.network/
Discord проекта https://discord.gg/KKR7K3H2Kg
Официальная документация по установке на github https://github.com/subspace/subspace/blob/00670c9714949ec8f776e7f0467110945866457b/docs/farming.md
2 dedicated CPU cores, 2GB RAM, 50GB disk space
Удаление старой ноды (systemd)
Если ранее была установлена нода по моему гайду через systemd, нужно удалить ее:
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*
Установка
sudo -i cd $HOME # следующие две команды могут выдать ошибку и это нормально apt update && apt install curl -y && apt purge docker docker-engine docker.io containerd docker-compose -y rm /usr/bin/docker-compose /usr/local/bin/docker-compose curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh systemctl restart docker curl -SL https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Задаем переменные окружения с адресом и именем ноды. Адрес можно получить здесь https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.gemini-1b.subspace.network%2Fws#/accounts
# В кавычках указываем свой адрес и произвольное имя ноды SUBSPACE_WALLET_ADDRESS="адрес для получения вознаграждения" SUBSPACE_NODE_NAME="имя вашей ноды" # Задаем лимит использования диска G - гигабайт, T - террабайт. # Например, 100G - 100 гигабайт или 2T - 2 террабайта SUBSPACE_PLOT_SIZE="100G" # здесь ничего не меняем echo 'export SUBSPACE_WALLET_ADDRESS='$SUBSPACE_WALLET_ADDRESS >> $HOME/.bash_profile echo 'export SUBSPACE_NODE_NAME="'${SUBSPACE_NODE_NAME}'"' >> $HOME/.bash_profile echo 'export SUBSPACE_PLOT_SIZE='$SUBSPACE_PLOT_SIZE >> $HOME/.bash_profile source $HOME/.bash_profile
Теперь нужно создать docker-compose.yml
mkdir $HOME/subspace cd $HOME/subspace
Весь блок вставляется в консоль целиком:
tee $HOME/subspace/docker-compose.yml > /dev/null <<EOF version: "3.7" services: node: # For running on Aarch64 add '-aarch64' after 'DATE' image: ghcr.io/subspace/node:gemini-1b-2022-jun-18 volumes: # Instead of specifying volume (which will store data in '/var/lib/docker'), you can # alternatively specify path to the directory where files will be stored, just make # sure everyone is allowed to write there - node-data:/var/subspace:rw # - /path/to/subspace-node:/var/subspace:rw ports: # If port 30333 is already occupied by another Substrate-based node, replace all # occurrences of '30333' in this file with another value - "0.0.0.0:30333:30333" restart: unless-stopped command: [ "--chain", "gemini-1", "--base-path", "/var/subspace", "--execution", "wasm", "--pruning", "1024", "--keep-blocks", "1024", "--port", "30333", "--rpc-cors", "all", "--rpc-methods", "safe", "--unsafe-ws-external", "--validator", # Replace 'INSERT_YOUR_ID' with your node ID (will be shown in telemetry) "--name", "$SUBSPACE_NODE_NAME" ] healthcheck: timeout: 5s # If node setup takes longer then expected, you want to increase 'interval' and 'retries' number. interval: 30s retries: 5 farmer: depends_on: node: condition: service_healthy # For running on Aarch64 add '-aarch64' after 'DATE' image: ghcr.io/subspace/farmer:gemini-1b-2022-jun-18 # Un-comment following 2 lines to unlock farmer's RPC # ports: # - "127.0.0.1:9955:9955" # Instead of specifying volume (which will store data in '/var/lib/docker'), you can # alternatively specify path to the directory where files will be stored, just make # sure everyone is allowed to write there volumes: - farmer-data:/var/subspace:rw # - /path/to/subspace-farmer:/var/subspace:rw restart: unless-stopped command: [ "--base-path", "/var/subspace", "farm", "--node-rpc-url", "ws://node:9944", "--ws-server-listen-addr", "0.0.0.0:9955", # Replace 'WALLET_ADDRESS' with your Polkadot.js wallet address "--reward-address", "$SUBSPACE_WALLET_ADDRESS", # Replace 'PLOT_SIZE' with plot size in gigabytes or terabytes, for instance 100G or 2T (but leave at least 10G of disk space for node) "--plot-size", "$SUBSPACE_PLOT_SIZE" ] volumes: node-data: farmer-data: EOF
docker-compose up -d
Просмотр логов
docker-compose logs --tail=1000 -f
docker-compose logs | grep "signed"
Важно: запускать нужно из того же каталога, где лежит ранее созданный файл docker-compose.yml. Поэтому при новом логине на сервер предварительно нужно сделать cd $HOME/subspace
Свою ноду можно найти по имени в телеметрии (просто начните набирать имя для поиска):
https://telemetry.subspace.network
Тестовые токены, полученные за подписание блока будут начислены на указанный адрес. Баланс смотреть здесь: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Feu.gemini-1b.subspace.network%2Fws#/accounts
Обновление до версии gemini-1b-2022-jun-18
Этот раздел предназначен для тех, кто уже устанавливал Subspace по этому гайду ранее. Если установка производилась после 21 июня 2022, то команды из этого раздела выполнять не нужно!
sudo -i cd $HOME/subspace
sed -i.bak "s/:gemini-1b-2022.*/:gemini-1b-2022-jun-18/" docker-compose.yml
docker-compose up -d
Удаление ноды (docker)
cd $HOME/subspace docker-compose down -v cd $HOME && rm -rf $HOME/subspace/