Skip to main content
Оптимизация использования RPC позволяет значительно повысить производительность, сократить затраты и улучшить пользовательский опыт. В этом руководстве описаны проверенные методы эффективного взаимодействия с RPC Solana.

Быстрый старт

Transaction Optimization

Оптимизируйте вычислительные единицы, приоритетные комиссии и отправку транзакций

Data Retrieval

Эффективные шаблоны получения данных аккаунтов и программ

Real-time Monitoring

Подписки WebSocket и оптимизация потоковой передачи данных

Best Practices

Рекомендации по производительности и управлению ресурсами

Оптимизация транзакций

Управление вычислительными единицами

1. Выполните симуляцию, чтобы определить фактическое использование:
2. Установите подходящие лимиты с запасом:

Оптимизация приоритетной комиссии

1. Получите динамические оценки комиссии:
2. Примените приоритетную комиссию:

Рекомендации по отправке транзакций

Оптимизация получения данных

Улучшенные методы пагинации (V2)

Для крупномасштабных запросов данных используйте новые методы V2 с пагинацией на основе курсора:

⚡ Performance Boost

getProgramAccountsV2 и getTokenAccountsByOwnerV2 значительно повышают производительность приложений, работающих с большими наборами данных:
  • Настраиваемые лимиты: от 1 до 10 000 аккаунтов на запрос
  • Пагинация на основе курсора: предотвращает истечение времени ожидания при крупных запросах
  • Инкрементальные обновления: используйте changedSinceSlot для синхронизации в реальном времени
  • Более эффективное использование памяти: передавайте данные потоком вместо загрузки всего объема сразу
Пример: эффективный запрос аккаунтов программы
Инкрементальные обновления для приложений реального времени:

Оптимизация получения данных

Эффективные запросы аккаунтов

Получение балансов токенов

История транзакций

Для получения полной истории адреса используйте getTransactionsForAddress — эксклюзивный метод Helius, который за один вызов возвращает полные данные транзакций, включая активность связанных аккаунтов токенов:

История переводов

Если вам нужны только перемещения токенов или SOL — платежи, активность портфеля или сверка балансов, — используйте getTransfersByAddress (эксклюзивный метод Helius, требующий тарифа Developer или выше). Он возвращает разобранные, удобочитаемые объекты переводов с уже определенными владельцами, адресами выпуска токенов, суммами и количеством десятичных знаков, поэтому вам не нужно разбирать транзакции:
Практическое правило: используйте getTransactionsForAddress, если вам нужны полные полезные данные транзакций или активность, не связанная с переводами, и getTransfersByAddress, если вам нужны структурированные записи переводов для реестров и отслеживания платежей.

Мониторинг в реальном времени

Подписки на аккаунты

Мониторинг аккаунтов программы

Мониторинг транзакций

Расширенные шаблоны

Интеллектуальная логика повторных попыток

Обработка с эффективным использованием памяти

Пул соединений

Мониторинг производительности

Отслеживание использования RPC

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

Уровни подтверждения

  • Используйте для: подписок WebSocket, обновлений в реальном времени
  • Задержка: ~400 мс
  • Надежность: подходит для большинства приложений

Управление ресурсами

Обработка ошибок

Распространенные ошибки, которых следует избегать

Избегайте следующих распространенных ошибок:
  • Опрос вместо использования подписок WebSocket
  • Получение полных данных аккаунта, когда нужны только частичные данные
  • Отказ от пакетных операций при выполнении нескольких запросов
  • Игнорирование ограничений частоты запросов и отсутствие корректной логики повторных попыток
  • Использование уровня подтверждения finalized, когда достаточно confirmed
  • Незакрытые подписки, приводящие к утечкам памяти

Связанные методы

Описанные в этом руководстве методы оптимизации относятся к следующим методам WebSocket и RPC:

getTransactionsForAddress

Полная история транзакций с фильтрацией, сортировкой и поддержкой аккаунтов токенов (эксклюзивно для Helius)

getTransfersByAddress

Разобранная история переводов токенов и SOL для платежей и сверки (эксклюзивно для Helius)

getTransaction

Получение полной информации о транзакции по подписи

getProgramAccounts

Получение всех аккаунтов, принадлежащих программе

getTokenAccountsByOwner

Получение аккаунтов токенов для кошелька

getMultipleAccountsInfo

Пакетное получение информации о нескольких аккаунтах

getAccountInfo

Получение информации об одном аккаунте

accountSubscribe

Подписка на изменения аккаунта через WebSocket

programSubscribe

Подписка на изменения аккаунтов программы через WebSocket

logsSubscribe

Подписка на журналы транзакций через WebSocket

Итоги

Внедрив эти методы оптимизации, вы сможете добиться следующих результатов:
  • Сокращение количества вызовов API на 60–90%
  • Значительное снижение задержки для операций в реальном времени
  • Сокращение использования пропускной способности благодаря целевым запросам
  • Повышенная устойчивость к ошибкам благодаря интеллектуальной логике повторных попыток
  • Снижение эксплуатационных затрат благодаря эффективному использованию ресурсов

Next Steps

Готовы внедрить эти оптимизации? Ознакомьтесь с нашим руководством по оптимизации транзакций, чтобы узнать рекомендации для работы с транзакциями.