> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbitflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# getClusterNodes

> Возвращает информацию обо всех узлах, участвующих в кластере

## Параметры

Этот метод не принимает никаких параметров.

## Ответ

<ResponseField name="result" type="array">
  Массив объектов, содержащих информацию об узлах:

  <Expandable title="поля result">
    <ResponseField name="pubkey" type="string">
      Публичный ключ узла (base-58)
    </ResponseField>

    <ResponseField name="gossip" type="string | null">
      Сетевой адрес gossip для данного узла
    </ResponseField>

    <ResponseField name="tpu" type="string | null">
      Сетевой адрес TPU для данного узла
    </ResponseField>

    <ResponseField name="rpc" type="string | null">
      Сетевой адрес JSON RPC для данного узла
    </ResponseField>

    <ResponseField name="version" type="string | null">
      Версия программного обеспечения узла
    </ResponseField>

    <ResponseField name="featureSet" type="number | null">
      Уникальный идентификатор набора функций узла
    </ResponseField>

    <ResponseField name="shredVersion" type="number | null">
      Версия shred, настроенная для использования данным узлом
    </ResponseField>
  </Expandable>
</ResponseField>

## Примеры кода

### Базовый запрос

```bash theme={null}
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getClusterNodes"
}'
```

### Использование web3.js

```typescript theme={null}
import { Connection } from '@solana/web3.js';

const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');

const nodes = await connection.getClusterNodes();
console.log('Cluster nodes:', nodes);

// Example: Find all nodes running a specific version
const version = '1.16.0';
const nodesWithVersion = nodes.filter(node => node.version === version);
console.log(`Nodes running version ${version}:`, nodesWithVersion);

// Example: Get all RPC endpoints
const rpcEndpoints = nodes
  .filter(node => node.rpc)
  .map(node => node.rpc);
console.log('Available RPC endpoints:', rpcEndpoints);
```

## Примечания

1. Некоторые поля могут быть `null`, если информация недоступна
2. Информация об узлах получается через gossip-сеть
3. Список включает все известные узлы, независимо от того, активны они в данный момент или нет
4. Сетевые адреса представлены в стандартном формате сокета (IP:порт)

## Лучшие практики

1. Кэшируйте результаты для снижения нагрузки на RPC (обновляйте каждые несколько минут)
2. Используйте информацию о версии для обнаружения обновлений сети
3. Фильтруйте значения null при обработке сетевых адресов
4. Учитывайте версии узлов при выборе RPC-эндпоинтов
5. Используйте адреса TPU для оптимизации пересылки транзакций

## Распространённые ошибки

| Код    | Сообщение                    | Решение                                                                         |
| ------ | ---------------------------- | ------------------------------------------------------------------------------- |
| -32601 | Method not found             | Убедитесь, что вы подключены к узлу Solana RPC                                  |
| -32007 | Node information unavailable | Узел может выполнять начальную загрузку или gossip-сервис может быть недоступен |
| -32008 | Node list too large          | Повторите попытку позже при улучшении условий сети                              |

## Примеры использования

1. **Балансировка нагрузки**
   * Обнаружение доступных RPC-эндпоинтов
   * Распределение клиентских соединений

2. **Мониторинг работоспособности сети**
   * Отслеживание версий узлов
   * Мониторинг распределения сети
   * Выявление сетевых разделений

3. **Оптимизация транзакций**
   * Поиск ближайших TPU-адресов
   * Реализация пересылки транзакций с учётом лидера

4. **Управление версиями**
   * Отслеживание обновлений сети
   * Обеспечение совместимости клиентов
   * Планирование окон технического обслуживания
