Структурные различия между dedicated и shared Solana RPC-узлами и почему dedicated-узлы необходимы для максимальной производительности
Структурные различия между dedicated и shared Solana RPC-узлами и почему dedicated-узлы необходимы для максимальной производительности

Если на Solana вам нужна предельная производительность, очень быстро становится понятно: одних оптимизаций приложения и алгоритмов недостаточно. Скорость связи определяется не "хитростью" клиентской логики, а более глубокими факторами - расстоянием, маршрутом пакетов, тем, как распределяются ресурсы сервера, и даже тем, включен ли TLS. Пока эти нижние слои не настроены правильно, shared-узел не сможет выйти в тот диапазон производительности, который доступен dedicated-узлу.
В этой статье разберем структурные различия между shared- и dedicated-узлами и объясним, почему dedicated-узлы становятся необходимостью, когда задача уже не "достаточно быстро", а действительно максимальная скорость.
Скорость связи определяется расстоянием и маршрутом
Любая связь в интернете в первую очередь определяется физическим расстоянием и маршрутом. Каждый маршрутизатор и каждый коммутатор на пути добавляет пусть небольшую, но реальную задержку, а любой обходной маршрут увеличивает время round trip. Скорость распространения сигнала в оптоволокне ограничена физикой, и никакая оптимизация на уровне приложения этого не отменяет.
Иными словами, скорость сначала определяется двумя вопросами: насколько вы близко и каким путем идут ваши пакеты. И только потом начинает играть роль сама структура узла.
Почему shared-узлы неизбежно создают jitter
Shared-узел - это мощный сервер, которым одновременно пользуются многие клиенты. Даже если аппаратная часть очень сильная, количество задач, которые реально могут исполняться параллельно, всегда ограничено. Если 100 пользователей делят сервер на 32 ядра, одновременно можно обработать только 32 операции, а остальные неизбежно ждут своей очереди.
Операционная система очень быстро переключает задачи, поэтому при обычной нагрузке задержки могут быть незаметны. Но внутри системы ожидание все равно существует. Именно оно и проявляется как jitter во времени получения Shreds или отправки транзакций. Для обычных dApps или кошельков это не критично, но в HFT и других сценариях, чувствительных к задержке, несколько миллисекунд уже напрямую влияют на результат.
Проблема не в том, что shared-узлы "медленные". Суть в том, что сама модель совместного использования неизбежно создает очереди и jitter, убрать которые полностью невозможно.
Почему dedicated-узлы лучше подавляют jitter
Dedicated-узел работает только на одного клиента. CPU, память, I/O и сетевая пропускная способность целиком выделены под одну нагрузку, поэтому очереди, вызванной соседними пользователями, просто не возникает.
В Solana, где исход часто решают миллисекунды между получением Shreds и отправкой транзакции, важна не только средняя задержка, но и то, насколько мал jitter. Dedicated-узлы структурно снижают jitter, поэтому даже на том же "железе" работают в совершенно другом диапазоне производительности, чем shared-узлы.
TLS добавляет неизбежные 20 мс задержки
Shared-узлы обязательно работают через TLS/SSL. Поскольку один эндпоинт используется сразу многими клиентами, отказаться от шифрования нельзя: это сразу откроет путь к прослушиванию, подмене трафика и replay-атакам. Поэтому обычный HTTP на shared-эндпоинтах в принципе невозможен.
На dedicated-узле, где среда изолирована, а доступ ограничен одним клиентом, TLS можно отключить и использовать обычный HTTP. TLS всегда добавляет издержки на шифрование, расшифровку и handshake. На практике это дает около 20 мс дополнительной задержки, и для shared-узлов этот overhead неустраним.
Именно поэтому dedicated-узлы не только снижают jitter, но и убирают эти дополнительные ~20 мс, выходя в диапазон скорости, недостижимый даже для очень хорошо настроенных shared-узлов.
Для чего вообще нужны shared-узлы
Shared-узлы не предназначены для гонки за абсолютным максимумом скорости. Их задача - давать широкое покрытие по регионам и достаточно высокую производительность по более доступной цене. Для многих приложений именно shared-узлы остаются самым разумным и практичным выбором.
Рациональная схема обычно выглядит так: dedicated-узел ставится только в ключевых точках, например во Франкфурте, а shared-узлы используются в Токио или Сингапуре. Не каждый регион требует предельной скорости, поэтому полезно разделять участки, где скорость не должна проседать никогда, и участки, где достаточно просто быть быстрым.
В Solana zero-distance регион постоянно меняется
Одна из ключевых особенностей Solana в том, что leader-валидаторы ротируются по всему миру. В зависимости от того, где именно находится лидер в конкретный момент, меняется и то, какой дата-центр становится zero-distance.
Когда блоки производятся лидером в Токио, преимущество получают узлы рядом с Токио. Когда лидер во Франкфурте, zero-distance регионом становится Франкфурт. Иными словами, к обычным сетевым ограничениям по расстоянию и маршрутизации в Solana добавляется еще один динамический фактор - постоянная смена географии лидеров.
Из-за этого попытка ловить всех лидеров с далекого континента неизбежно приводит к слотам, где вы просто физически не успеваете. Если вам действительно нужна максимальная скорость на Solana, придется думать и о том, какое расстояние для вас приоритетно, и о том, где именно должны стоять dedicated-узлы.
Почему ERPC уменьшает разницу в скорости
ERPC подбирает дата-центры и проектирует сетевую архитектуру специально под Solana. В сочетании с Jito Block Engine, ShredStream, распределением полосы пропускания, конфигурацией NIC и настройкой операционной системы это дает очень плотную оптимизацию.
Даже при одинаковом программном стеке более короткие маршруты и тюнинг ERPC часто дают измеримый выигрыш. Shared-узлы стараются максимально снизить jitter, а dedicated-узлы получают дополнительное преимущество за счет HTTP-связи без TLS.
Когда dedicated-узлы действительно необходимы
Dedicated-узлы становятся обязательными в HFT, arbitrage, MEV, 0-slot targeting и других стратегиях, где миллисекунды напрямую влияют на PnL. После того как вы уже оптимизировали расстояние, маршрутизацию и логику приложения, оставшийся потолок задержки определяется именно структурой shared-узлов. На этом этапе убрать ограничение может только dedicated-узел.
Для обычных dApps, кошельков, NFT-сервисов и приложений, где производительность в реальном времени не критична, shared-узлов более чем достаточно. Многие команды начинают именно с shared-узлов и добавляют dedicated-узлы только тогда, когда требования к производительности действительно вырастают.
Shared-узлы - это не компромисс в плохом смысле слова. У них просто другая задача. Но когда цель меняется с "достаточно быстро" на "максимально быстро", dedicated-узлы становятся уже не опцией, а структурной необходимостью.
Итог
Скорость связи сначала определяется расстоянием и маршрутом. Поверх этого дополнительную разницу создает уже сама структура узла: shared или dedicated, с TLS или без него. Shared-узлы рассчитаны на хорошую экономику и широкое покрытие. Dedicated-узлы убирают jitter и overhead TLS, открывая путь к настоящему максимуму скорости.
В Solana zero-distance регион постоянно меняется вслед за тем, как лидеры перемещаются по миру. Поэтому выбор правильной архитектуры требует понимания сразу нескольких вещей: расстояния, маршрутизации и типа узла.
Если вы хотите обсудить оптимизацию расстояния до сети или подбор конфигурации узлов, свяжитесь с нами через официальный Discord Validators DAO.
- Официальный сайт ERPC: https://erpc.global/en
- Официальный Discord Validators DAO: https://discord.gg/C7ZQSrCkYR


