Советы и подсказки
Размещение ключа в хранилище ключей:
Это может пригодиться, если Вы решили сменить домен или у Вас уже есть секретная фраза. Подробнее о смене домена читайте в следующем разделе.
Чтобы поместить ключ, используйте следующую команду:
<BASE_PATH>: Путь к каталогу данных вашего узла<DOMAIN_ID>: Идентификатор домена, с которым вы хотите работать<SECRET_PHRASE>: Секретная фраза вашего ключа оператора
./subspace-node-ubuntu-x86_64-skylake-taurus-2025-jul-14 domain key insert \
--base-path "<BASE_PATH>" --domain-id "<DOMAIN_ID>" --keystore-suri "<SECRET_PHRASE>"
Приведенная выше команда добавит пару ключей в подкаталог <BASE_PATH>/domains/<DOMAIN_ID>/keystore.
suri - это секретная фраза ключа оператора.
Переключение доменов
Любой Оператор может изменить домен, в котором он работает, в любое время. Чтобы переключить домен:
- Перейдите на PolkadotJS
- Убедитесь, что выбрали правильную сеть в верхнем левом углу.
- Выберите аккаунт, который хотите использовать в
using the selected account. - Выберите
domainsв полеsubmit the following extrinsic, далее выберитеswitchDomain(operatorId, newDomainId)в выпадающем списке. - Добавьте свои
operatorIdиnewDomainIdв соответствующие поля.

Только аккаунт, с которого регистрировался Оператор, может изменить домен.
При смене домена необходимо переместить пару ключей в новое место. Следуйте указаниям добавление ключа в хранилище ключей.
Депозиты Ваших Номинаторов не будут разблокированы, а будут также перенесены на новый домен.
Полезные команды
Одновременный запуск ноды валидатора (фармера) и оператора
Чтобы одновременно запустить оператора и валидатора, укажите необходимые флаги для обеих ролей при запуске Вашей ноды.
<NAME>: Имя вашего узла для телеметрии<BASE_PATH>: Путь для хранения данных узла<DOMAIN_ID>: Идентификатор домена, с которым вы хотите работать<OPERATOR_ID>: Ваш идентификатор оператора (полученный после регистрации)<WALLET_ADDRESS>: адрес вашего кошелька для вознаграждений<FARM_SIZE>: Размер фермы (например, 4TiB, 8TiB)
- Ubuntu
- Windows
- macOS
- Docker
./subspace-node-ubuntu-x86_64-skylake-taurus-2025-jul-14 run \
--chain taurus \
--name "<NAME>" \
--base-path "<BASE_PATH>" \
--sync full \
-- \
--domain-id "<DOMAIN_ID>" \
--operator-id "<OPERATOR_ID>"
.\subspace-node-ubuntu-x86_64-skylake-taurus-2025-jul-14. run \
--chain taurus \
--name "<NAME>" \
--base-path "<BASE_PATH>" \
--sync full \
-- \
--domain-id "<DOMAIN_ID>" \
--operator-id "<OPERATOR_ID>"
./subspace-node-ubuntu-x86_64-skylake-taurus-2025-jul-14 run \
--chain taurus \
--name "<NAME>" \
--base-path "<BASE_PATH>" \
--sync full \
-- \
--domain-id "<DOMAIN_ID>" \
--operator-id "<OPERATOR_ID>"
`services:
node:
# Замените snapshot-DATE на последний релиз (напр. snapshot-2024-jun-18)
# Для запуска на Aarch64 добавьте -aarch64 после DATE
image: ghcr.io/autonomys/node:snapshot-DATE
volumes:
# Вместо указания тома (который будет хранить данные в /var/lib/docker), вы можете
# указать путь к директории где будут храниться файлы, но убедитесь,
# что там установлены права на запись для all
- node-data:/var/subspace:rw
# - /path/to/subspace-node:/var/subspace:rw
ports:
# Если порт 30333 или 30433 уже используется другой нодой на Substrate, замените все
# встречающиеся 30333 или 30433 в этом файле на другие значения
- "0.0.0.0:30333:30333/tcp"
- "0.0.0.0:30433:30433/tcp"
- "0.0.0.0:40333:40333/tcp"
restart: unless-stopped
command: [
"run",
"--chain", "chronos",
"--base-path", "/var/subspace",
"--listen-on", "30333",
"--dsn-listen-on", "/ip4/0.0.0.0/tcp/30433",
"--rpc-cors", "all",
"--rpc-methods", "unsafe",
"--rpc-listen-on", "0.0.0.0:9944",
"--farmer",
"--name", "ВАШ_ID",
"--",
# Замените ВАШ_DOMAIN_ID на ID вашего домена, на котором вы хотите, чтобы был ваш оператор,
"--domain-id", "ВАШ_DOMAIN_ID",
# Замените ВАШ_OPERATOR_ID на ID вашего оператора
"--operator-id", "ВАШ_OPERATOR_ID",
"--listen-on", "/ip4/0.0.0.0/tcp/40333",
# Замените ВАШ_ID на ID вашей ноды (будет показан в Телеметрии)
]
healthcheck:
timeout: 5s
# Если подключение ноды не устанавливается, вы можете увеличить интервал и количество попыток.
interval: 30s
retries: 60
farmer:
depends_on:
node:
condition: service_healthy
# Замените snapshot-DATE на последний релиз (напр. snapshot-2024-jun-18)
# Для запуска на Aarch64 добавьте -aarch64 после DATE
image: ghcr.io/autonomys/farmer:snapshot-DATE
volumes:
Вместо указания тома (который буд ет хранить данные в /var/lib/docker), вы можете
# указать путь к директории где будут храниться файлы, но убедитесь,
# что там установлены права на запись для all
- farmer-data:/var/subspace:rw
# - /path/to/subspace-farmer:/var/subspace:rw
ports:
# Если порт 30533 уже используется другой нодой на Substrate, замените все
# встречающиеся 30533 в этом файле на другое значение
- "0.0.0.0:30533:30533/tcp"
restart: unless-stopped
command: [
"farm",
"--node-rpc-url", "ws://node:9944",
"--listen-on", "/ip4/0.0.0.0/tcp/30533",
# Замените WALLET_ADDRESS вашим адресом Polkadot.js wallet
"--reward-address", "WALLET_ADDRESS",
# Замените PLOT_SIZE размером вашего участка (plot) в гигабайтах или терабайтах, например100G or 2T (но оставьте не менее 60G дискового пространства для ноды и необходимое пространство для операционной системы)
"path=/var/subspace,size=PLOT_SIZE",
]
volumes:
node-data:
farmer-data:
`
Вы должны увидеть, что нода успешно запущена и начала синхронизацию.

Переключение на другой сервер
Чтобы обеспечить минимальное время простоя во время переключения, мы предлагаем следующее:
- Синхронизируйте новую ноду оператора с помощью временного ключа. Вы можете сгенерировать новый ключ, но не добавлять его в хранилище ключей.
- Остановите исходную ноду и переименуйте ключевое хранилище (или сделайте то, что Вам удобно, чтобы предотвратить случайный запуск исходной ноды с оригнальным ключом подписи).
- Обновите хранилище ключей на новой ноде поместив в него оригинальный ключ подписи.
- Перезапустите новую ноду оператора.