Оператор: советы и подсказки
Размещение ключа в хранилище ключей:
Это может пригодиться, если Вы решили сменить домен или у Вас уже есть секретная фраза. Подробнее о смене домена читайте в следующем разделе.
Чтобы поместить ключ, используйте следующую команду:
<BASE_PATH>
: Path to your node data directory<DOMAIN_ID>
: The domain ID you want to operate on<SECRET_PHRASE>
: Your operator key's secret phrase
./subspace-node-ubuntu-x86_64-skylake-taurus-2025-may-27 domain key insert \
--base-path "<BASE_PATH>" --domain-id "<DOMAIN_ID>" --keystore-suri "<SECRET_PHRASE>"
The command above will insert the keypair in the subfolder of <BASE_PATH>/domains/<DOMAIN_ID>/keystore
.
suri
- это секретная фраза ключа оператора.
Переключение доменов
Any Operator can switch domain they operate on anytime. In order to switch domain:
- Перейдите на PolkadotJS
- Make sure to select the correct network at the top-left corner.
- Выберите аккаунт, который хотите использовать в
using the selected account
. - Выберите
domains
в полеsubmit the following extrinsic
, далее выберитеswitchDomain(operatorId, newDomainId)
в выпадающем списке. - Add your
operatorId
andnewDomainId
to the corresponding fields.
Только аккаунт, с которого регистрировался Оператор, может изменить домен.
При смене домена необходимо переместить пару ключей в новое место. Следуйте указаниям добавление ключа в хранилище ключей.
Депозиты Ваших Номинаторов не будут разблокированы, а будут также перенесены на новый домен.
Полезные команды
Одновременный запуск ноды валидатора (фармера) и оператора
Чтобы одновременно запустить оператора и валидатора, укажите необходимые флаги для обеих ролей при запуске Вашей ноды.
<NAME>
: Your node name for telemetry<BASE_PATH>
: Path to store node data<DOMAIN_ID>
: Domain ID you want to operate on<OPERATOR_ID>
: Your operator ID (obtained after registration)<WALLET_ADDRESS>
: Your wallet address for farming rewards<FARM_SIZE>
: Farm size (e.g. 4TiB, 8TiB)
- Ubuntu
- Windows
- macOS
- Docker
./subspace-node-ubuntu-x86_64-skylake-taurus-2025-may-27 run \
--chain taurus \
--farmer \
--name "<NAME>" \
--base-path "<BASE_PATH>" \
--sync full \
-- \
--domain-id "<DOMAIN_ID>" \
--operator-id "<OPERATOR_ID>"
.\subspace-node-windows-x86_64-skylake-taurus-2025-may-27.exe run `
--chain taurus `
--farmer `
--name "<NAME>" `
--base-path "<BASE_PATH>" `
--sync full `
-- `
--domain-id "<DOMAIN_ID>" `
--operator-id "<OPERATOR_ID>"
./subspace-node-macos-aarch64-taurus-2025-may-27 run \
--chain taurus \
--farmer \
--name "<NAME>" \
--base-path "<BASE_PATH>" \
--sync full \
-- \
--domain-id "<DOMAIN_ID>" \
--operator-id "<OPERATOR_ID>"
services:
node:
# Replace snapshot-DATE with the latest release (like snapshot-2025-jan-07)
image: ghcr.io/autonomys/node:snapshot-DATE
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 or 30433 is already occupied by another Substrate-based node, replace all
# occurrences of 30333 or 30433 in this file with another value
- "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", "taurus",
"--base-path", "/var/subspace",
"--rpc-cors", "all",
"--rpc-methods", "unsafe",
"--rpc-listen-on", "0.0.0.0:9944",
"--farmer",
"--name", "<NAME>",
"--sync", "full",
"--",
"--domain-id", "<DOMAIN_ID>",
"--operator-id", "<OPERATOR_ID>",
"--listen-on", "/ip4/0.0.0.0/tcp/40333"
]
healthcheck:
timeout: 5s
# If node setup takes longer than expected, you want to increase interval and retries number.
interval: 30s
retries: 60
farmer:
depends_on:
node:
condition: service_healthy
# Replace snapshot-DATE with latest release (like snapshot-2025-jan-07)
image: ghcr.io/autonomys/farmer:snapshot-DATE
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:
# If port 30533 is already occupied by something else, replace all
# occurrences of 30533 in this file with another value
- "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",
"--reward-address", "<WALLET_ADDRESS>",
"path=/var/subspace,size=<FARM_SIZE>",
]
volumes:
node-data:
farmer-data:
You should see the node start successfully and begin syncing.
Переключение на другой сервер
To ensure the minimum downtime during your switch, we propose the following:
- Sync a new operator node using a throwaway key. You can generate a new key, just not insert it into your keystore.
- Остановите исходную ноду и переименуйте ключевое хранилище (или сделайте то, что Вам удобно, чтобы предотвратить случайный запуск исходной ноды с оригнальным ключом подписи).
- Обновите хранилище ключей на новой ноде поместив в него оригинальный ключ подписи.
- Перезапустите новую ноду оператора.