June 1, 2022

SUBSPACE

Рекомендуемые параметры для сервера:
4 CPU, 8 GB RAM, 150-200 GB дискового пространства.

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

Создайте кошелёк в polkadot.js для сети Subspace, он нам понадобится в процессе установки.
Если он уже есть то заходим на сайт и копируем ваш кошелёк оттуда. Очень важно это сделать для тех кто участвовал с стресстесте. Им будут бонусы.

Начнём саму установку:

Обновляем дистрибутив

sudo apt-get update && sudo apt-get upgrade -y

Cкачиваем нужные пакеты

sudo apt-get install wget jq -y

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

. <(wget -qO- https://raw.githubusercontent.com/letsnode/Utils/main/installers/docker.sh)

Откроем нужный порт

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \ 30333

Установим для удобства несколько переменных

echo "export NODENAME="имя_вашей_ноды"" >> ~/.bash_profile
echo "export SUBSPACE_WALLET="ваш_кошелёк"" >> ~/.bash_profile
source ~/.bash_profile

Адрес вашего кошелька начинается на st! Не перепутайте.

Создаем рабочую директорию и переходим в нее.

mkdir subspace && cd subspace && touch docker-compose.yaml

Теперь создадим в редакторе нужный нам сервисный файл

nano docker-compose.yaml

Копируем конфигурацию ниже и вставляем в файл.

version: "3.7"
services:
  node:
    image: ghcr.io/subspace/node:gemini-2a-2022-sep-10
    volumes:
      - node-data:/var/subspace:rw
    ports:
      - "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",
      "--name", "$NODENAME"
    ]
    healthcheck:
      timeout: 5s
      interval: 30s
      retries: 5

  farmer:
    depends_on:
      node:
        condition: service_healthy
    image: ghcr.io/subspace/farmer:gemini-2a-2022-sep-10
    volumes:
      - farmer-data:/var/subspace:rw
    ports:

      - "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",
      "--reward-address", "$SUBSPACE_WALLET",
      "--plot-size", "100G"
    ]
volumes:
  node-data:
  farmer-data:

Сохраняем файл: ctrl+O -> enter, теперь выходим: ctrl+X.

Запускаем ноду и фармера:

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

Ждём пока всё запустится. Всё.



Проверка работы

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

docker-compose logs --tail=1000 -f

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

Или в телеметрии. Надо набрать имя своей ноды для поиска. (Сейчас она не работает - повесили заглушку с информацией что из-за наплыва нод у них всё легло).

"Идеальную" высоту можно найти в экслорере. Значение справа сверху.

После завершения синхронизации ноды, фармер начнёт продуцировать блоки и получать за это награду. Если баланс кошелька увеличивается - всё работает отлично.

Вот и всё. Фармим TSSC и ждём окончания.

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

Проверка логов:

docker-compose logs --tail=1000 -f

Проверка синхронизации:

docker-compose logs --tail=1000 -f | grep -E "best: #[0-9]*"

Высоту можно найти в экслорере. Значение справа сверху.

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

docker-compose restart

Чтобы обновить - проще всего удалить всё и поставить снова.