Кластер фарминга
Кластер фармеров предназначена для более крупных фармеров, которые успешно решают задачи масштабирования. Он состоит из четырех основных компонентов, все взаимосвязанные через 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
Component Configuration
Configuring Cluster Farming is similar to setting up the Standalone Farmer, but each component must be configured according to the cluster setup you want to create. Keep in mind that all components communicate with one another through the NATS server you configured earlier. Below are the essential parameters needed to establish a functional cluster.
Controller (Manages node communication and orchestrates other components.)
The first component to start is the Controller. It connects to a single node, and you must specify the node's location on the network.
For your cluster to be reachable, open and forward the default port 30533 to the Controller. If you've changed the port or are using multiple controllers, set it with --listen-on "/ip4/0.0.0.0/tcp/<PORT>".
If you have an IPv6 address but no public IPv4 address, setting the listen port to with --listen-on "/ip6/::/tcp/<PORT>". to accept IPv6 connections is highly recommended.
Refer to our guide on Port Forwarding.
<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-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-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-2025-aug-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-aug-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
plotter
./subspace-farmer-ubuntu-x86_64-skylake-mainnet-2025-aug-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-2025-aug-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-2025-aug-20 \
cluster \
--nats-server "nats://<NATS_IP>:4222" \
farmer \
--reward-address "<REWARD_ADDRESS>" \
path="<PATH_TO_FARM>,size=<FARM_SIZE>"