Обзор: RPC-запросы — это точка входа приложения в кластер Solana. Запросы обрабатываются так называемыми RPC-узлами, которые обычно выделены для этой задачи и не участвуют в консенсусе. Тем не менее, с точки зрения пользователя приложения, плохая производительность RPC ничем не отличается от низкой производительности кластера. Чтобы ваши пользователи могли по достоинству оценить скорость и низкую задержку Solana, важно обеспечить соответствующую RPC-инфраструктуру.
Разработка: Разработчикам рекомендуется использовать локальный кластер на этапе разработки, особенно на ранних стадиях и для тестирования. Локальные кластеры более гибкие, чем публичные, и позволяют запускать неотлаженные ранние версии. Самый простой способ развернуть локальный кластер — использовать бинарный файл solana-test-validator, входящий в комплект Solana CLI Tools. Когда приложение достигает стабильного состояния, становится актуальным переход на публичный кластер.
Как и при любой оптимизации кода, в случае с RPC-запросами действует принцип: меньше — лучше. Избегайте частых повторяющихся запросов к одним и тем же данным. Не создавайте клиенты, которые делают RPC-запросы напрямую. «dApps без бэкенда» — миф: вы просто нагружаете чужую инфраструктуру. Кэшируйте ресурсоёмкие запросы (особенно getProgramAccount, getSignaturesForAddress2 и getConfirmedBlock) оптимальным для приложения способом и обслуживайте пользователей из кэша. Оптимизация кода до выхода в прод поможет избежать жалоб на плохой пользовательский опыт и существенно снизит расходы на инфраструктуру.
Несколько провайдеров предлагают бесплатный доступ к публичным кластерам Solana через RPC. Эти сервисы подходят для тестирования в реальных условиях, ранних демо и небольших приватных бета-программ. Помните, что вы получаете ровно то, за что платите: бесплатные сервисы обычно не масштабируются автоматически, имеют ограничения по частоте запросов, не предоставляют SLA и могут заблокировать злоупотребляющих пользователей. Когда приложение готово к публичному запуску, стоит инвестировать в приватный RPC-доступ.
Некоторые бесплатные RPC-провайдеры:
Testnet
Devnet
Mainnet-beta
Из-за различий в требованиях к RPC у разных приложений, универсальная публичная RPC-инфраструктура редко бывает оптимальной. Чтобы обеспечить хороший пользовательский опыт, публичным приложениям необходимо получить собственный приватный RPC-доступ. Это позволит вам масштабировать инфраструктуру в зависимости от спроса, ослабить лимиты под нужды приложения и быть уверенным, что другие приложения не будут мешать вашим пользователям. Несколько организаций предоставляют высокодоступные RPC-сервисы по требованию — смотрите ниже. Если ни один из провайдеров не подходит и вы готовы развернуть собственный RPC-сервис, обратитесь в Solana Foundation за консультацией.