Solana Geyser gRPC - Быстрый старт

Установите SLV

bash
curl -fsSL https://storage.slv.dev/slv/install | sh

$ slv b init

slv b init
Одной командой slv b init вы можете мгновенно scaffold'ить среду разработки для Solana bots на базе высокопроизводительных stream-oriented данных.
bash
slv b init
  • Используйте geyser-ts, если предпочитаете TypeScript Geyser bot
  • Используйте geyser-rust, если предпочитаете Rust Geyser bot

Разрешите источники ICMP-проверок задержки

Для выбора региона gRPC ERPC отправляет ICMP-запросы для измерения задержки на зарегистрированный вами IP-адрес с перечисленных ниже прокси-хостов. Разрешите входящие эхо-запросы ICMP со всех указанных исходных IP-адресов. Если их блокирует межсетевой экран (ufw, облачный межсетевой экран, группа безопасности и т. д.), результат измерения может составить 9999ms, и может быть выбран неоптимальный регион. Несколько IP-адресов в одном регионе относятся к разным хостам проверки; необходимо разрешить их все.
РегионИсходные IP-адреса ICMP
🇳🇱 Amsterdam82.21.43.34, 151.244.92.36
🇺🇸 New York151.243.244.5
🇩🇪 Frankfurt151.241.178.20, 151.241.178.34, 151.241.178.21
🇬🇧 London151.241.65.4
🇯🇵 Tokyo143.20.238.66
🇸🇬 Singapore151.245.186.2
🛰️ Far Point143.20.238.73

Эндпоинты Burst gRPC

Geyser gRPC Burst — это низколатентный общий gRPC-уровень ERPC для чувствительных к задержке Solana stream workloads. Burst использует тот же интерфейс Yellowstone/Geyser gRPC, что и обычный gRPC-сервис, поэтому существующие gRPC-клиенты могут продолжать использовать стандартные подписки account, transaction, slot и block.
Burst использует перечисленные выше региональные источники ICMP-проверок для выбора региона по задержке. Указанные ниже адреса — это IP-адреса клиентских конечных точек Burst, а не источники ICMP-проверок; разрешайте их только в том случае, если ваш межсетевой экран для исходящего трафика ограничивает подключения к выбранной конечной точке.
RegionBurst DomainIP Address
🇩🇪 Frankfurtgrpc-fra1-burst.erpc.global64.130.41.234
🇳🇱 Amsterdamgrpc-ams1-burst.erpc.global64.130.55.180
🇺🇸 New Yorkgrpc-ny6-burst.erpc.global64.130.59.217
После регистрации IP используйте endpoint, показанный в ERPC Web Dashboard. Burst остается полноценным Geyser gRPC stream; Direct Shreds/ShredStream — отдельный UDP-продукт для сырых shred data.

Пример Geyser Client - TypeScript

  1. Переименуйте .env.sample в .env
  2. Отредактируйте .env, указав ваши реальные значения:
ini
GEYSER_ENDPOINT=http://grpc-ams1.erpc.global
SOLANA_RPC_ENDPOINT="https://edge.erpc.global?api-key=YOUR_API_KEY"
Обратите внимание:
Этот endpoint приведен только как пример и не может использоваться как есть. Получите и настройте endpoint, соответствующий вашей среде.
  1. Установите зависимости и запустите dev server:
bash
pnpm i
pnpm dev
Geyser TypeScript VSCode

Пример Geyser Client - Rust

  1. Переименуйте .env.sample в .env
  2. Отредактируйте .env, указав ваши реальные значения:
ini
GEYSER_ENDPOINT=http://grpc-ams1.erpc.global
SOLANA_RPC_ENDPOINT="https://edge.erpc.global?api-key=YOUR_API_KEY"
Обратите внимание:
Этот endpoint приведен только как пример и не может использоваться как есть. Получите и настройте endpoint, соответствующий вашей среде.
  1. Соберите и запустите client:
bash
RUST_LOG=info cargo run
Geyser Rust VSCode

✅ Доступен бесплатный пробный доступ на 1 день

И Geyser, и Shreds bots можно бесплатно протестировать в течение 1 дня через веб-панель ERPC.
Откройте панель: https://dashboard.erpc.global/ru

Solana Stream SDK

Solana Stream SDK
Geyser adapter, используемый в starter code, который загружается командой slv b init, предоставляется открытым проектом Solana Stream SDK.
Он поддерживает и Rust, и TypeScript, позволяя эффективно реализовывать Solana stream communication, включая Geyser subscriptions, обработку transactions и мониторинг account updates в реальном времени.
Starter code, который вы получаете, - это прямой пример работы этого SDK, который легко расширить под собственную bot-разработку или custom logic.
Подробнее см. в репозитории GitHub: https://github.com/ValidatorsDAO/solana-stream