> ## 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.

# getGenesisHash

> Возвращает хеш генезиса кластера

## Параметры

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

## Ответ

<ResponseField name="result" type="string">
  Хеш генезиса в виде строки в кодировке base-58
</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": "getGenesisHash"
}'
```

### Использование 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');

// Get genesis hash
const genesisHash = await connection.getGenesisHash();
console.log('Genesis hash:', genesisHash);

// Verify cluster
async function verifyCluster(expectedHash: string) {
  const actualHash = await connection.getGenesisHash();
  if (actualHash !== expectedHash) {
    throw new Error(`Connected to wrong cluster. Expected ${expectedHash}, got ${actualHash}`);
  }
  console.log('Connected to correct cluster');
}
```

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

1. Возвращает хеш генезиса кластера
2. Хеш генезиса уникален для каждого кластера
3. Может использоваться для проверки того, к какому кластеру вы подключены
4. Хеш закодирован в base-58
5. Ответ приходит немедленно, так как читается из текущего состояния

## Рекомендации

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

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

| Код    | Сообщение                | Решение                                                   |
| ------ | ------------------------ | --------------------------------------------------------- |
| -32601 | Method not found         | Убедитесь, что вы подключены к узлу Solana RPC            |
| -32007 | Genesis hash unavailable | Узел может выполнять начальную загрузку или синхронизацию |

## Сценарии использования

1. **Верификация кластера**
   ```typescript theme={null}
   const CLUSTER_HASHES = {
     mainnet: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d',
     testnet: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY',
     devnet: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG'
   };

   async function verifyClusterConnection(expectedCluster: keyof typeof CLUSTER_HASHES) {
     const genesisHash = await connection.getGenesisHash();
     const expectedHash = CLUSTER_HASHES[expectedCluster];
     
     if (genesisHash !== expectedHash) {
       throw new Error(`Connected to wrong cluster. Expected ${expectedCluster} (${expectedHash}), got ${genesisHash}`);
     }
     
     return {
       cluster: expectedCluster,
       genesisHash,
       verified: true
     };
   }
   ```

2. **Определение кластера**
   ```typescript theme={null}
   async function detectCluster() {
     const genesisHash = await connection.getGenesisHash();
     
     for (const [cluster, hash] of Object.entries(CLUSTER_HASHES)) {
       if (hash === genesisHash) {
         return cluster;
       }
     }
     
     throw new Error('Unknown cluster');
   }
   ```

3. **Настройка сети**
   ```typescript theme={null}
   interface NetworkConfig {
     cluster: string;
     genesisHash: string;
     rpcEndpoint: string;
     wsEndpoint: string;
   }

   async function configureNetwork(endpoint: string): Promise<NetworkConfig> {
     const connection = new Connection(endpoint);
     const genesisHash = await connection.getGenesisHash();
     const cluster = await detectCluster();
     
     return {
       cluster,
       genesisHash,
       rpcEndpoint: endpoint,
       wsEndpoint: endpoint.replace('http', 'ws')
     };
   }
   ```
