Skip to main content

Что такое RPC

Что такое RPC

RPC (Remote Procedure Call, удалённый вызов процедур) — это протокол коммуникации, позволяющий приложению запрашивать сервис у программы, работающей на другом компьютере, без необходимости понимать детали сети этого компьютера. В контексте блокчейна RPC — это способ, которым кошельки, децентрализованные приложения, блок-эксплореры и другое программное обеспечение общаются с нодами блокчейна — отправляя транзакции, запрашивая балансы, читая состояние смарт-контрактов и получая данные блоков.

Коротко: RPC — стандартный интерфейс, через который приложения общаются с нодами блокчейна. Это уровень коммуникации, соединяющий dApps, кошельки и инструменты с самой блокчейн-сетью.

Как RPC работает в блокчейне

Каждая нода блокчейна предоставляет RPC-эндпоинт — URL, который принимает структурированные запросы и возвращает структурированные ответы. Когда приложению нужно взаимодействовать с блокчейном, оно отправляет RPC-запрос на этот эндпоинт.

Паттерн «запрос-ответ»

Взаимодействие следует стандартному паттерну «клиент-сервер»:

  1. Запрос. Приложение (клиент) отправляет запрос на RPC-эндпоинт ноды. Запрос указывает, какой метод вызвать, и предоставляет необходимые параметры. Например: «получить баланс адреса 0x742d...bD38» или «отправить эту подписанную транзакцию в сеть».
  2. Обработка. Нода получает запрос, выполняет запрошенную операцию — читая из своей локальной копии блокчейна или транслируя транзакцию в сеть — и подготавливает ответ.
  3. Ответ. Нода возвращает результат приложению в структурированном формате (обычно JSON).

JSON-RPC

Большинство блокчейн-сетей используют JSON-RPC — облегчённый протокол, в котором запросы и ответы форматируются как JSON-объекты. Типичный JSON-RPC запрос включает имя метода (например, eth_getBalance, eth_sendRawTransaction или eth_call) и массив параметров. Ответ содержит результат или сообщение об ошибке.

Этот стандартизированный формат означает, что любое приложение, понимающее JSON-RPC, может взаимодействовать с любой нодой, реализующей те же методы, независимо от используемого языка программирования или фреймворка с обеих сторон.

Распространённые RPC-операции

RPC-эндпоинты блокчейна обычно поддерживают следующие операции:

  • Чтение состояния — запрос балансов аккаунтов, токенных позиций, хранилища смарт-контрактов и текущего номера блока.
  • Отправка транзакций — трансляция подписанных транзакций в сеть для включения в блок.
  • Вызов смарт-контрактов — исполнение функций смарт-контрактов только для чтения без создания транзакции (без затрат газа).
  • Подписка на события — прослушивание конкретных ончейн-событий: переводы токенов, развёртывания контрактов или новые блоки.
  • Получение истории — запрос прошлых транзакций, логов и данных блоков.

RPC-провайдеры

Запуск полной ноды блокчейна требует значительного хранилища, пропускной способности и обслуживания. Многие разработчики и приложения используют RPC-провайдеров — сторонние сервисы, которые управляют инфраструктурой нод и предоставляют RPC-эндпоинты для публичного или платного использования. Эти провайдеры обеспечивают надёжный, высокодоступный доступ к данным блокчейна без необходимости для каждого приложения запускать собственную ноду.

Популярные RPC-провайдеры обслуживают миллиарды запросов ежедневно через множество блокчейн-сетей, выступая основой экосистемы dApp.

Почему это важно для крипто-ИИ проектов

RPC — уровень коммуникации, от которого зависит каждый ИИ-проект на блокчейне, даже если он не всегда виден конечным пользователям.

Взаимодействие со смарт-контрактами. ИИ-проекты, развёртывающие смарт-контракты, нуждаются в RPC для чтения состояния контрактов, вызова функций и отправки транзакций. Будь то распределение вычислительных задач, запись результатов инференса или управление стейкингом — каждое ончейн-взаимодействие проходит через RPC-эндпоинт.

Поглощение данных. ИИ-системы, анализирующие ончейн-активность — торговые паттерны, поведение кошельков, метрики протоколов — полагаются на RPC-вызовы для поглощения блокчейн-данных. Скорость и надёжность доступа через RPC напрямую влияют на качество и своевременность ИИ-аналитики.

Инфраструктурная зависимость. Для ИИ-проектов, управляющих децентрализованными сетями нод, RPC-уровень — это способ, которым внешние пользователи получают доступ к сервису. Децентрализованный вычислительный маркетплейс предоставляет RPC-эндпоинты для отправки задач; ИИ-инференс сеть использует RPC для доставки результатов. Надёжность этих эндпоинтов определяет пользовательский опыт.

Где это появляется в карточках проектов DecAIHub

RPC не указывается как отдельное поле в карточках проектов, но лежит в основе нескольких аспектов архитектуры проекта:

  • Main chain — у каждой основной сети своя RPC-спецификация. Выбор сети определяет, какие RPC-методы доступны и как приложения взаимодействуют с сетью.
  • Type — проекты, предоставляющие RPC-инфраструктуру как сервис (провайдеры нод, API-шлюзы), могут быть классифицированы на основе их инфраструктурной роли.
  • Взаимодействие с dApp и смарт-контрактами — любой проект с ончейн-смарт-контрактами полагается на RPC для всех внешних взаимодействий с этими контрактами.

Что RPC сам по себе не доказывает

  • Децентрализацию — использование централизованного RPC-провайдера означает, что приложение зависит от единой точки отказа. Если провайдер выходит из строя или цензурирует запросы, приложение теряет доступ к блокчейну. Работа через централизованный RPC-шлюз не делает приложение децентрализованным.
  • Безопасность — RPC-эндпоинты могут быть публичными или приватными, с ограничением частоты запросов или открытыми. Публичный RPC-эндпоинт не предоставляет гарантий безопасности по умолчанию. Приложения, отправляющие чувствительные транзакции, должны убедиться, что используют доверенные, аутентифицированные эндпоинты.
  • Ончейн-исполнение — отправка RPC-запроса не означает, что операция происходит ончейн. Вызовы только для чтения (eth_call) исполняются локально на ноде без создания транзакции. Только подписанные транзакции, отправленные через RPC, фактически изменяют состояние блокчейна.
  • Производительность — время отклика RPC зависит от оборудования ноды, сетевых условий и инфраструктуры провайдера. Медленное RPC-соединение не указывает на медленный блокчейн; оно может указывать на перегруженную или географически удалённую ноду.

Не путать с

  • API — RPC — это тип API, но не все API — это RPC. REST API, GraphQL-эндпоинты и WebSocket-интерфейсы — альтернативные паттерны коммуникации. В блокчейне «RPC» конкретно обозначает JSON-RPC интерфейс, предоставляемый нодами.
  • Нода — нода — это фактический компьютер, запускающий блокчейн-программное обеспечение. RPC — интерфейс, через который внешние приложения общаются с этой нодой. Нода выполняет работу; RPC — это дверь.
  • SDK / Библиотека — библиотеки вроде Web3.js, Ethers.js или Web3.py упрощают RPC-взаимодействие, оборачивая необработанные JSON-RPC вызовы в удобные для разработчика функции. Библиотека — это удобная надстройка; RPC — базовый протокол.
  • Оракул — оракул приносит офчейн-данные в блокчейн. RPC — способ, которым приложения читают и записывают ончейн-данные. Они выполняют разные роли: оракулы перебрасывают внешние данные внутрь, а RPC обеспечивает доступ к данным, которые уже находятся ончейн.

Часто задаваемые вопросы

Нужно ли мне запускать собственную ноду для использования RPC?

Нет. Большинство разработчиков и приложений используют сторонних RPC-провайдеров, которые управляют инфраструктурой нод как сервисом. Эти провайдеры предоставляют RPC-эндпоинты, доступные через стандартные HTTP или WebSocket соединения. Запуск собственной ноды даёт полный контроль и устраняет зависимость от третьей стороны, но требует значительных ресурсов. Для большинства сценариев использования надёжного RPC-провайдера достаточно.

Что происходит, если RPC-провайдер выходит из строя?

Если RPC-провайдер, которым пользуется ваше приложение, выходит из строя, приложение теряет связь с блокчейном. Оно не может читать состояние, отправлять транзакции или получать уведомления о событиях, пока соединение не будет восстановлено или приложение не переключится на альтернативный эндпоинт. По этой причине продакшен-приложения часто конфигурируют несколько резервных RPC-эндпоинтов от разных провайдеров.

RPC — это то же самое, что и доступ к блокчейну?

RPC — наиболее распространённый метод доступа к блокчейну, но не единственный. Некоторые приложения используют альтернативные протоколы, такие как индексаторы на базе GraphQL или прямые пиринговые соединения. Однако JSON-RPC остаётся стандартным интерфейсом для взаимодействия с блокчейном общего назначения, и практически каждый кошелёк, dApp и блокчейн-инструмент использует его «под капотом».

Внешние ссылки

  • Ethereum.org — JSON-RPC API — официальная документация Ethereum по спецификации JSON-RPC и доступным методам.

См. также