Кластер фарминга
Кластер фармеров предназначена для более крупных фармеров, которые успешно решают задачи масштабирования. Он состоит из четырех основных компонентов, все взаимосвязанные через NATS Server.
Такая настройка позволяет использовать мощные возможности удаленных вычислений. Например, если компьюте р идеально подходит для решения задач доказательства, но не для черчения, вы можете запустить компонент фермера на этой машине, а для черчения использовать одну или несколько удаленных машин. Это обеспечивает непрерывное черчение и перечерчивание во всех местах хранения, оптимизируя использование плоттеров до тех пор, пока все сектора не будут полностью прочерчены и перечерчены.
Рекомендации по созданию сети
Farming Cluster использует модульную архитектуру для управления фермой, где каждый компонент может функционировать независимо и может масштабироваться путем запуска нескольких экземпляров компонента для дополнительной масштабируемости и избыточности. Таким образом, важно обеспечить достаточную пропускную способность локальной сети для облегчения эффективной связи при передаче данных по вашей сети между этими компонентами.
Сетевого подключения мощностью 1 Гбит, вероятно, недостаточно для такого трафика, особенно при использовании ресурсов графического процессора или нескольких плоттеров. В таких случаях минимальное подключение должно составлять 2,5 Гбит/с, с повышением до 10 Гбит/с или выше для больших кластеров.
Вы можете уменьшить пропускную способность локальной сети, запустив NATS, контроллер, кэш и плоттер на одной машине. Такая установка позволяет передавать большую часть данных через локальный интерфейс loopback.
Основные преимущества
-
Возможность удаленных вычислений Несколько ПК могут использовать свои ресурсы CPU и GPU для черчения и перечерчивания, без необходимости локального хранения ферм.
-
Избыточность.
Запуск нескольких компьютеров для каждого процесса увеличивает избыточность и устойчивость системы. -
Эффективность использования полосы пропускания.
Централизованное хранение кэша фрагментов позволяет экономить пропускную способность глобальной сети. -
Дополнительное пространство Перемещение кэша синхронизации фрагментов в центральное место освобождает дополнительно 1% емкости фермы для ведения сельского хозяйства по сравнению с автономным фермером.
NATS
В основе кластера фармеров лежит ст ороннее программное обеспечение под названием NATS, которое используется для связи между компонентами фермы.
Самый простой способ установить и запустить NATS - через Docker.
Настройка и настройка NATS
- Создайте и сохраните конфигурационный файл
nats.configследующим образом:
max_payload = 2MB
- Запустить NATS с помощью Docker:
<PATH_TO_NATS_CONFIG>: Путь к файлу nats.config, созданному на шаге 1 :::
docker run \
--name nats \
--restart unless-stopped \
--publish 4222:4222 \
--volume <PATH_TO_NATS_CONFIG>:/nats.config:ro \
nats -c /nats.config
Настройка компонентов
Настройка кластера фармеров аналогична настройке автономного фармера, но каждый компонент должен быть настроен в соответствии с кластером, который вы хотите создать. Помните, что все компоненты взаимодействуют друг с другом через сервер NATS, который вы настроили ранее. Ниже перечислены основные параметры, необходимые для создания функционального кластера.
Контроллер (управляет коммуникацией узлов и оркестрирует другие компоненты.)
Первым компонентом, который необходимо запустить, является контроллер. Он подключается к одному узлу, и вы должны указать его местоположение в сети.
Чтобы ваш кластер был доступен, откройте и перенаправьте порт по умолчанию 30533 на контроллер. Если вы изменили порт или используете несколько контроллеров, установите его с помощью --listen-on «/ip4/0.0.0.0/tcp/<PORT>».
Если у вас есть IPv6-адрес, но нет публичного IPv4-адреса, настоятельно рекомендуется установить порт прослушивания с помощью --listen-on «/ip6/::/tcp/<PORT>». для приема IPv6-соединений.
Обратитесь к нашему руководству по Пробросу Портов.
<NATS_IP>: The IP address of your NATS server<BASE_PATH>: The path where the controller's peer network details will be saved<NODE_IP>: Your node's IP address<RPC_PORT>: Your node's RPC port
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
controller \
--base-path "<BASE_PATH>" \
--node-rpc-url "ws://<NODE_IP>:<RPC_PORT>"
Common Parameters
Refer to ./subspace-farmer cluster controller --help for an explanation of each option and its default values.
--listen-on "/ip4/0.0.0.0/tcp/<PORT>"
--listen-on "/ip6/::1/tcp/<PORT>"
--cache-group
--in-connections
--out-connections
--pending-in-connections
--pending-out-connections
Cache (Downloads sector data from DSN peers and serves it to the plotter.)
The Cache stores the blockchain's Archive History. For optimal performance, the cache must be large enough to hold this data locally. If the data isn't available in the cache, plotting may slow down as it has to be fetched from peers over the DSN. Currently, we recommend a minimum of 200GiB.
The current Archive History Size can be found in the top cards on Subscan Block Explorer.
<NATS_IP>: The IP address of your NATS server<PATH_TO_CACHE>: The path for cache storage<CACHE_SIZE>: The size for cache storage
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
cache \
path="<PATH_TO_CACHE>,size=<CACHE_SIZE>"
Multiple caches are supported on a single Cache component:
path="<PATH_TO_CACHE1>,size=<CACHE_SIZE1>" \
path="<PATH_TO_CACHE2>,size=<CACHE_SIZE2>"
Common Parameters
Обратитесь к ./subspace-farmer cluster controller --help для объяснения каждой опции и ее значений по умолчанию.
--cache-group
Plotter (генерирует и загружает диаграммы секторов, при необходимости загружая части из кэша)
<NATS_IP>: The IP address of your NATS server
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
Common Parameters
Обратитесь к ./subspace-farmer cluster controller --help для объяснения каждой опции и ее значений по умолчанию.
Фермер (управляет фермами, проверяет и извлекает отрисованные участки. Запрашивает секторное черчение у плоттера.)
<NATS_IP>: The IP address of your NATS server<REWARD_ADDRESS>: Адрес вознаграждения, на который будут отправлены ваши награды<PATH_TO_FARM>: Путь для хранения вашей фермы<FARM_SIZE>: The size for storing your farm
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"
You can add multiple farms:
path="<PATH_TO_FARM1>,size=<FARM_SIZE1>" \
path="<PATH_TO_FARM2>,size=<FARM_SIZE2>"
Common Parameters
Обратитесь к ./subspace-farmer cluster controller --help для объяснения каждой опции и ее значений по умолчанию.
--create
Группировка компонентов
Вы можете запустить компоненты Farming Cluster индивидуально или объединить их для одновременного запуска.
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
controller \
--base-path "<BASE_PATH>" \
--node-rpc-url "ws://<NODE_IP>:<RPC_PORT>"
-- \
cache \
path="<PATH_TO_CACHE>,size=<CACHE_SIZE>"
-- \
plotter
-- \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"
Дополнительные возможности
NATS Кластер
Аналогично всем компонентам Farming Cluster, можно иметь избыточные NATS сервера. Это требует дополнительного шага настройки этих NATS серверов в их собственном кластере.
Посмотрите NATS.io Cluster Guide для получения более подробной информации.
Конфигурация
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 cluster \
controller \
--nats-server="nats://<NATS_IP_1>:4222" \
--nats-server="nats://<NATS_IP_2>:4222" \
--base-path "<BASE_PATH>" \
--node-rpc-url "ws://<NODE_IP>:<RPC_PORT>"
Несколько компонентов
Это продемонстрирует, как запускать несколько компонентов в одном кластере фармеров: (1) NATS Server, (2) Контролеры, (2) Caches, (2) Plotters, and (3) фермеры
Каждая группа кэша должна иметь уникальное имя, а контроллерам может быть назначена одна или несколько. Укажите буквенно-цифровое имя для каждой из них с помощью команды --cache-group «<CACHE_GROUP>».
Конфигурация
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
controller \
--base-path "<BASE_PATH>" \
--cache-group "<CACHE_GROUP_1>" \
--cache-group "<CACHE_GROUP_2>" \
--node-rpc-url "ws://<NODE_IP>:<RPC_PORT>"
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
controller \
--base-path "<BASE_PATH>" \
--cache-group "<CACHE_GROUP_2>" \
--node-rpc-url "ws://<NODE_IP>:<RPC_PORT>"
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
cache \
--cache-group "<CACHE_GROUP_1>" \
path="<PATH_TO_CACHE>,size=<CACHE_SIZE>"
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
cache \
--cache-group "<CACHE_GROUP_2>" \
path="<PATH_TO_CACHE>,size=<CACHE_SIZE>"
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2026-jan-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"