Визначення

RPC (Remote Procedure Call) — це протокол, що дозволяє програмі викликати функцію на віддаленому сервері так, ніби це локальний виклик. У контексті Solana RPC-вузол приймає запити від гаманців, dApps та скриптів, обробляє їх і повертає відповідь із даними блокчейну або підтвердженням транзакції.

Простіше кажучи: RPC — це міст між вашим додатком і мережею Solana. Без нього жоден клієнт не зможе прочитати стан блокчейну чи надіслати транзакцію.

Як працює

У Solana взаємодія через RPC відбувається за такою схемою:

  1. Клієнт формує запит — наприклад, метод getBalance з адресою гаманця у форматі JSON-RPC.
  2. Запит надсилається на RPC-вузол — це повноцінний валідатор або спеціалізований нод, який тримає актуальну копію стану леджера.
  3. Вузол виконує логіку — читає дані з локального сховища або ретранслює транзакцію у кластер.
  4. Клієнт отримує відповідь — JSON-обʼєкт із балансом, підписом транзакції, логами або повідомленням про помилку.

Solana підтримує стандарт JSON-RPC 2.0, тому більшість бібліотек та інструментів працюють із ним однаково. Окремо існують WebSocket-підключення (ws), які дозволяють підписуватися на події в реальному часі — наприклад, оновлення балансу або статус транзакції.

Приклад

Гаманець користувача відкривається і має показати поточний баланс SOL. Він надсилає такий запит на RPC-вузол:

Метод: getBalance
Параметри: ["7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU"]

RPC-вузол звертається до свого локального стану, знаходить цей акаунт і повертає:

result: { "value": 150000000, "lamports": 150000000 }
Контекст: { "slot": 245000000 }

Гаманець перетворює lamports на SOL (0.15) і відображає користувачеві. Усе це відбувається за частки секунди, але саме RPC-вузол виконав основну роботу.

Типова помилка

Використання публічних RPC-ендпоінтів для продакшн-додатків. Публічні вузли мають жорсткі ліміти на кількість запитів (rate limits), не гарантують стабільну затримку та можуть бути тимчасово недоступні під час високого навантаження на мережу. Якщо ваш dApp або бот покладається на такий вузол, користувачі отримуватимуть помилки та затримки.

Правильний підхід — підключити власний або виділений RPC-вузол через провайдерів, які гарантують SLA, пріоритетну обробку та моніторинг. Для локальної розробки достатньо запустити власну інстанцію валідатора з увімкненим RPC.

Пов'язані матеріали

Внутрішні переходи

  • Compute units — дізнайтеся, як Solana вимірює обчислювальні ресурси, які витрачаються під час обробки вашого RPC-запиту.
  • SDK — інструменти, які абстрагують низькорівневі RPC-виклики та спрощують розробку.

Додаткові ресурси

  • Офіційна документація Solana — розділ із повним переліком підтримуваних JSON-RPC-методів та параметрів.
  • Специфікація JSON-RPC 2.0 — для розуміння формату запитів та відповідей, який використовує Solana.