June 2, 2022

Установка ноды и фермера SubSpace

Гайд обновлен от 20.09.2022 (Последний релиз)

Стартовал долгожданный поощрительный тестнет от Subspace Network. Здесь я расскажу как запустить ноду и фермера на системе Ubuntu 20.04

Минимальные требования:

2 vCPU

2GB оперативной памяти

100 gb свободного места на диске

СОЗДАНИЕ КОШЕЛЬКА

Для начала нам потребуется кошелек, если ранее вы его не создавали.

Проходим в эксплорер и далее делаем как указано на скриншотах

ОБЯЗАТЕЛЬНО СОХРАНИТЕ СВОЮ МНЕМОНИК ФРАЗУ! ЕЕ ВОСТАНОВИТЬ НЕЛЬЗЯ!

УСТАНОВКА С НУЛЯ

Теперь приступаем к установке

Обновляем пакеты

sudo apt update && sudo apt upgrade -y

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

sudo apt install curl ncdu htop git wget -y

Устанавливаем docker:

cd $HOME
apt update && 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
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

Проверка версии docker-compose

docker-compose --version

Версия должна быть 2.5.0

Создаем переменные

NODENAME="Имя ноды"
ADDRESS="Ваш кошелек который начинается на st"
PLOT_SIZE="выделяемый объем на конце G или T"

PLOT_SIZE в объём указываем то кол-во места на диске, которое вы хотите ему дать например у вас диск на 500gb, и у вас больше нет других нод на диске, в таком случае выделяете PLOT_SIZE=480G. Если у вас больше тб диск, указываете так PLOT_SIZE=1T

Записываем переменные в баш

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
echo "export ADDRESS=$ADDRESS" >> $HOME/.bash_profile
echo "export PLOT_SIZE=$PLOT_SIZE" >> $HOME/.bash_profile
source $HOME/.bash_profile

Проверяем переменные

cat $HOME/.bash_profile

При выводе должны стоять ваши верные данные

Создаем директорию

mkdir $HOME/subspace && cd $HOME/subspace

Создаем docker-compose, целиком без изменений.

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-2a-2022-sep-10
    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-2a",
      "--base-path", "/var/subspace",
      "--execution", "wasm",
      "--state-pruning", "archive",
      "--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", "$NODENAME"
    ]
    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-2a-2022-sep-10
    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
      - farmer-data:/var/subspace:rw
#      - /path/to/subspace-farmer:/var/subspace:rw
    ports:
# Un-comment following line to unlock farmer's RPC
#      - "127.0.0.1:9955:9955"
# If port 40333 is already occupied by something else, replace all
# occurrences of '40333' in this file with another value
      - "0.0.0.0:40333:40333"
    restart: unless-stopped
    command: [
      "--base-path", "/var/subspace",
      "farm",
      "--node-rpc-url", "ws://node:9944",
      "--ws-server-listen-addr", "0.0.0.0:9955",
      "--listen-on", "/ip4/0.0.0.0/tcp/40333",
# Replace 'WALLET_ADDRESS' with your Polkadot.js wallet address
      "--reward-address", "$ADDRESS",
      "--plot-size", "$PLOT_SIZE"
    ]
volumes:
  node-data:
  farmer-data:
EOF

Запускаем docker

cd $HOME/subspace && docker-compose up -d

Проверяем логи

cd $HOME/subspace && docker-compose logs --tail=100 -f

Проверяем логи фермера

cd $HOME/subspace && docker-compose logs -f | grep subspace-farmer-1

Поздравляю! Установка завершена.
Найти себя в телеметрии можно здесь.

Эксплорер и посмотреть последний блок здесь.

ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ

Рестарт docker

cd $HOME/subspace && docker-compose restart

Остановить docker

cd $HOME/subspace && docker-compose down -v

Удаление

cd $HOME && rm -rf $HOME/subspace

Мой чат для обсуждения: https://t.me/russianbears1

Авторский канал: https://t.me/cryptorussianbears