Кластер фарминга
Кластер фармеров предназначена для более крупных фармеров, которые успешно решают задачи масштабирования. Он состоит из четырех основных компонентов, все взаимосвязанные через 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>
: The path to your nats.config file created in step 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-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
controller \
--base-path "<BASE_PATH>" \
--node-rpc-url "ws://<NODE_IP>:<RPC_PORT>"
Общие параметры
Обратитесь к ./subspace-farmer cluster controller --help
для объяснения каждой опции и ее значений по умолчанию.
--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
Кэш (Загрузок данных сектора от узлов DSN и служит для построения секторов)
Кэш хранит историю архивов блокчейна. Для оптимальной производительности кэш должен быть достаточно большой, чтобы держать эти данные локально. Если данные в кэше не доступны, диаграмма может замедлить загрузку, так как она должна быть извлечена из узлов через DSN. В настоящее время мы рекомендуем не менее 200ГБ.
The current Archive History Size can be found in the top cards on Astral 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-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
cache \
path="<PATH_TO_CACHE>,size=<CACHE_SIZE>"
path="<PATH_TO_CACHE1>,size=<CACHE_SIZE1>" \
path="<PATH_TO_CACHE2>,size=<CACHE_SIZE2>"
Общие параметры
Обратитесь к ./subspace-farmer cluster controller --help
для объяснения каждой опции и ее значений по умолчанию.
--cache-group
Plotter (генерирует и загружает диаграммы секторов, при необходимости загружая части из кэша)
<NATS_IP>
: The IP address of your NATS server
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
Общие параметры
Обратитесь к ./subspace-farmer cluster controller --help
для объяснения каждой опции и ее значений по умолчанию.
Фермер (управляет фермами, проверяет и извлекает отрисованные участки. Запрашивает секторное черчение у плоттера.)
<NATS_IP>
: The IP address of your NATS server<REWARD_ADDRESS>
: The reward address where your winning rewards will be sent<PATH_TO_FARM>
: The path for storing your farm<FARM_SIZE>
: The size for storing your farm
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"
path="<PATH_TO_FARM1>,size=<FARM_SIZE1>" \
path="<PATH_TO_FARM2>,size=<FARM_SIZE2>"
Общие параметры
Обратитесь к ./subspace-farmer cluster controller --help
для объяснения каждой опции и ее значений по умолчанию.
--create
Группировка компонентов
Вы можете запустить компоненты Farming Cluster индивидуально или объединить их для одновременного запуска.
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 \
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 для получения более подробной информации.
Configuration
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 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>»
.
Configuration
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 \
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-2025-jun-18 \
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-2025-jun-18 \
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-2025-jun-18 \
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-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-jun-18 \
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-2025-jun-18 \
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-2025-jun-18 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"