Многие сталкиваются с термином RPC при ручном добавлении сетевого RPC в таких кошельках, как MetaMask. Тем не менее, RPC является незаменимой основополагающей технологией для таких блокчейн-приложений, как Dapps, Wallets и CEXs. RPC расшифровывается как "Remote Procedure Call". В Web2 RPC - это техника коммуникации, которая позволяет одному компьютеру вызывать и выполнять программу на другом. Посредством RPC вызывающей стороне нужно передать только имя сервиса и параметры для связи, что является широкой концепцией. В контексте блокчейна RPC - это протокол, который позволяет клиентам взаимодействовать с блокчейном. Пользователи могут запрашивать информацию, связанную с блокчейном (например, высоту блока, детали блока и соединения узлов), и отправлять транзакции через интерфейс RPC.
Страница сетевых дополнений Metamask (Источник: Metamask)
Очень важно понимать три основные роли RPC:
Граф вызовов RPC (источник: Google)
Подробная техническая архитектура показана на рисунке выше. Чтобы объяснить Вам более наглядно, мы возьмем в качестве примера процесс заполнения отчета менеджером проекта, чтобы объяснить подробный процесс вызова:
Чтобы прояснить ситуацию с помощью простой аналогии, представьте, что Вы - менеджер проекта, которому нужен сложный отчет. Возможно, Вы не обладаете техническими навыками, поэтому Вы привлекаете аналитика данных. Вы:
Учитывая децентрализованную и распределенную природу блокчейн, данные хранятся на многочисленных узлах. Примечательно, что для запуска узла и участия в проверке блоков компьютеры должны соответствовать определенным критериям аппаратного и программного обеспечения. В таких сетях, как ETH и ADA, работающие узлы также требуют закладывать определенное количество токенов.
Не каждый узел может использовать протокол RPC. Как правило, в качестве узлов RPC могут выступать только компьютеры, на которых запущено клиентское программное обеспечение блокчейна. Большинство проектов не в состоянии нести эксплуатационные расходы и расходы на обслуживание работающих узлов, учитывая, что для этого требуется огромное количество времени, рабочей силы и ресурсов. Это привело к появлению специализированных узлов RPC и поставщиков услуг.
Из предыдущего раздела очевидно, что жизненно важной функцией RPC (Remote Procedure Call) является установление связи между терминальными приложениями и блокчейном. Поэтому основное использование RPC заключается в том, чтобы в процессе разработки выбрать подходящего поставщика услуг RPC, который позволит пользователям выполнять внутрицепочечные транзакции и запросы.
Для среднего пользователя Web3 наиболее непосредственным вариантом использования является переключение на шлюз RPC с меньшей задержкой во время перегрузки сети, что уменьшает их задержку и ускоряет выполнение транзакций. Теоретически, RPC можно применить к любому проекту, требующему проведения транзакций или запросов информации в блокчейн.
Частный RPC
Подавляющее большинство блокчейнов предлагают бесплатные публичные RPC для тестирования приложений. Однако они имеют ограничения по тарифам, что привело к появлению частных ДУКов. Частная конечная точка RPC имеет уникальный URL, и только ее владелец может использовать этот URL для отправки транзакций в публичный пул памяти, предлагая, таким образом, прямое соединение с узлом-провайдером. Преимущества использования частных ДУК на практике включают:
Что касается использования RPC в разработке, то разработчикам следует обратиться к документации. В этой статье в качестве иллюстрации используется переключатель RPC в кошельках, таких как MetaMask: Перейдите в настройки, выберите сеть, щелкните на имени сети, для которой Вы хотите изменить RPC, измените URL RPC справа и сохраните, чтобы завершить изменение. Пользователям следует учитывать уровни задержек, поскольку переход на RPC с высокой задержкой может снизить скорость транзакций.
В MetaMask есть страница изменений RPC (источник: веб-версия MetaMask).
При его использовании очень важно сравнивать уровни задержки. Если Вы переключитесь на RPC с более высокой задержкой, скорость транзакций может замедлиться.
В связи со сложностью настройки и эксплуатации узлов появилась категория предприятий, специализирующихся на эксплуатации этих узлов для предоставления проектам таких услуг, как RPC/API. Проекты могут посылать запросы этим провайдерам через Интернет. Эти провайдеры запускают полностью синхронизированные, всегда обновляемые узлы, доступные 24 часа в сутки 7 дней в неделю, вместо того, чтобы проекты посылали запросы на свои локальные узлы. Многие провайдеры предлагают не только услуги RPC; они также предлагают различные сопутствующие услуги, такие как API, SDK и т.д. Для разработчиков и индивидуальных пользователей при выборе провайдера важно учитывать такие факторы, как скорость транзакций, стоимость, обслуживание клиентов и набор предлагаемых ими инструментов.
Поставщики услуг RPC также предоставляют частные RPC, упомянутые ранее. Большинство провайдеров RPC ориентированы на многоцепочечные операции и часто предлагают бесплатные пробные и общедоступные версии. Ниже приведены некоторые популярные поставщики услуг RPC:
Flashbots
Flashbots - это компания, занимающаяся исследованиями в области извлекаемой майнерами стоимости (MEV) и стремящаяся уменьшить негативные внешние эффекты и риски, которые MEV представляет для блокчейн смарт-контрактов. Их RPC-сервис, Flashbots Protect, состоит как из RPC, так и из API. Разработчики могут легко встраивать его в свои приложения, используя API. Обычные пользователи могут добавить его RPC в свои кошельки, направляя свои транзакции на Flashbots. Этот процесс предполагает отправку транзакций непосредственно майнерам, а не в публичный пул, что предотвращает "сэндвич-атаку", распространенную в MEV. В настоящее время Flashbots является ведущей организацией в отрасли по исследованию MEV.
Примечание: Под "сэндвич-атакой" понимается тактика завершения сделки непосредственно перед подтверждением транзакции пользователя, что вызывает рост цены, а затем продажа с премией после завершения транзакции пользователя с целью получения прибыли.
Infura
Infura - это продукт IaaS (Infrastructure as a Service), призванный облегчить разработчикам и пользователям доступ к данным Ethereum. Действуя как полноценный узел Ethereum, он предлагает интерфейс API, который позволяет DApps быстро подключаться к платформе Ethereum для взаимодействия без запуска локального узла Ethereum. В число ее клиентов входят Metamask, Uniswap, Compound и др.
Алхимия
Alchemy предоставляет SDK и API для создания многоцепочечных Web3 DApps, а также обучает пользователей использованию этих инструментов через сообщества и университетские инициативы. Alchemy поддержала более $100 млрд. стоимости транзакций в цепочке, имеет более 10 млн. конечных пользователей и принесла более $1,5 млрд. роялти. Среди известных клиентов - Opensea, GMX и AAVE.
Ankr
Ankr предлагает различные услуги узлов, включая публичные и частные узлы, поддерживая более 30 блокчейнов. Ankr также предоставляет API-интерфейсы на основе протоколов RPC и WebSocket, а также несколько инструментов разработки и SDK, таких как Web3.js и Truffle, позволяющих разработчикам легко создавать и развертывать блокчейн-приложения. Их клиентская база включает Binance, Sushiswap, Meta Apes и др.
Quicknode
QuickNode предоставляет пользователям услуги API непосредственно через выделенные узлы. Он поддерживает различные регионы, множество тестовых сетей и архивных узлов, предлагая разработчикам повышенную производительность доступа к блокчейну и большую стабильность. Функции включают интуитивно понятную приборную панель, набор аналитических средств и программу записи удаленных процедурных вызовов, поддерживающую более 20 цепочек. Среди клиентов - компании Nansen, Algofi и Dapprader.
BlockPI
BlockPI - это RPC с распределенной сетевой структурой, распределенный многоцепочечный ускоряющий слой, участвующий в децентрализованной среде Web3. В начале 2023 года он успешно модернизировал свой публичный RPC, предложив более стабильный и быстрый бесплатный сервис RPC. Теоретически, его архитектура фундаментально решает проблему перегруженности RPC-запросов и может похвастаться бесконечной масштабируемостью.
С постоянным развитием технологии блокчейн и все более широким внедрением Web3, сервисы RPC, как один из основополагающих сервисов, имеют многообещающее будущее. Спрос со стороны разработчиков на услуги RPC предсказуемо будет расти. С точки зрения отдельных лиц, часто торгующие трейдеры, которым требуется более высокая скорость транзакций, могут извлечь большую выгоду, выбрав менее используемый публичный RPC или инвестировав в частный RPC, особенно для таких операций, как сброс денег по воздуху или чеканка NFT.
Многие сталкиваются с термином RPC при ручном добавлении сетевого RPC в таких кошельках, как MetaMask. Тем не менее, RPC является незаменимой основополагающей технологией для таких блокчейн-приложений, как Dapps, Wallets и CEXs. RPC расшифровывается как "Remote Procedure Call". В Web2 RPC - это техника коммуникации, которая позволяет одному компьютеру вызывать и выполнять программу на другом. Посредством RPC вызывающей стороне нужно передать только имя сервиса и параметры для связи, что является широкой концепцией. В контексте блокчейна RPC - это протокол, который позволяет клиентам взаимодействовать с блокчейном. Пользователи могут запрашивать информацию, связанную с блокчейном (например, высоту блока, детали блока и соединения узлов), и отправлять транзакции через интерфейс RPC.
Страница сетевых дополнений Metamask (Источник: Metamask)
Очень важно понимать три основные роли RPC:
Граф вызовов RPC (источник: Google)
Подробная техническая архитектура показана на рисунке выше. Чтобы объяснить Вам более наглядно, мы возьмем в качестве примера процесс заполнения отчета менеджером проекта, чтобы объяснить подробный процесс вызова:
Чтобы прояснить ситуацию с помощью простой аналогии, представьте, что Вы - менеджер проекта, которому нужен сложный отчет. Возможно, Вы не обладаете техническими навыками, поэтому Вы привлекаете аналитика данных. Вы:
Учитывая децентрализованную и распределенную природу блокчейн, данные хранятся на многочисленных узлах. Примечательно, что для запуска узла и участия в проверке блоков компьютеры должны соответствовать определенным критериям аппаратного и программного обеспечения. В таких сетях, как ETH и ADA, работающие узлы также требуют закладывать определенное количество токенов.
Не каждый узел может использовать протокол RPC. Как правило, в качестве узлов RPC могут выступать только компьютеры, на которых запущено клиентское программное обеспечение блокчейна. Большинство проектов не в состоянии нести эксплуатационные расходы и расходы на обслуживание работающих узлов, учитывая, что для этого требуется огромное количество времени, рабочей силы и ресурсов. Это привело к появлению специализированных узлов RPC и поставщиков услуг.
Из предыдущего раздела очевидно, что жизненно важной функцией RPC (Remote Procedure Call) является установление связи между терминальными приложениями и блокчейном. Поэтому основное использование RPC заключается в том, чтобы в процессе разработки выбрать подходящего поставщика услуг RPC, который позволит пользователям выполнять внутрицепочечные транзакции и запросы.
Для среднего пользователя Web3 наиболее непосредственным вариантом использования является переключение на шлюз RPC с меньшей задержкой во время перегрузки сети, что уменьшает их задержку и ускоряет выполнение транзакций. Теоретически, RPC можно применить к любому проекту, требующему проведения транзакций или запросов информации в блокчейн.
Частный RPC
Подавляющее большинство блокчейнов предлагают бесплатные публичные RPC для тестирования приложений. Однако они имеют ограничения по тарифам, что привело к появлению частных ДУКов. Частная конечная точка RPC имеет уникальный URL, и только ее владелец может использовать этот URL для отправки транзакций в публичный пул памяти, предлагая, таким образом, прямое соединение с узлом-провайдером. Преимущества использования частных ДУК на практике включают:
Что касается использования RPC в разработке, то разработчикам следует обратиться к документации. В этой статье в качестве иллюстрации используется переключатель RPC в кошельках, таких как MetaMask: Перейдите в настройки, выберите сеть, щелкните на имени сети, для которой Вы хотите изменить RPC, измените URL RPC справа и сохраните, чтобы завершить изменение. Пользователям следует учитывать уровни задержек, поскольку переход на RPC с высокой задержкой может снизить скорость транзакций.
В MetaMask есть страница изменений RPC (источник: веб-версия MetaMask).
При его использовании очень важно сравнивать уровни задержки. Если Вы переключитесь на RPC с более высокой задержкой, скорость транзакций может замедлиться.
В связи со сложностью настройки и эксплуатации узлов появилась категория предприятий, специализирующихся на эксплуатации этих узлов для предоставления проектам таких услуг, как RPC/API. Проекты могут посылать запросы этим провайдерам через Интернет. Эти провайдеры запускают полностью синхронизированные, всегда обновляемые узлы, доступные 24 часа в сутки 7 дней в неделю, вместо того, чтобы проекты посылали запросы на свои локальные узлы. Многие провайдеры предлагают не только услуги RPC; они также предлагают различные сопутствующие услуги, такие как API, SDK и т.д. Для разработчиков и индивидуальных пользователей при выборе провайдера важно учитывать такие факторы, как скорость транзакций, стоимость, обслуживание клиентов и набор предлагаемых ими инструментов.
Поставщики услуг RPC также предоставляют частные RPC, упомянутые ранее. Большинство провайдеров RPC ориентированы на многоцепочечные операции и часто предлагают бесплатные пробные и общедоступные версии. Ниже приведены некоторые популярные поставщики услуг RPC:
Flashbots
Flashbots - это компания, занимающаяся исследованиями в области извлекаемой майнерами стоимости (MEV) и стремящаяся уменьшить негативные внешние эффекты и риски, которые MEV представляет для блокчейн смарт-контрактов. Их RPC-сервис, Flashbots Protect, состоит как из RPC, так и из API. Разработчики могут легко встраивать его в свои приложения, используя API. Обычные пользователи могут добавить его RPC в свои кошельки, направляя свои транзакции на Flashbots. Этот процесс предполагает отправку транзакций непосредственно майнерам, а не в публичный пул, что предотвращает "сэндвич-атаку", распространенную в MEV. В настоящее время Flashbots является ведущей организацией в отрасли по исследованию MEV.
Примечание: Под "сэндвич-атакой" понимается тактика завершения сделки непосредственно перед подтверждением транзакции пользователя, что вызывает рост цены, а затем продажа с премией после завершения транзакции пользователя с целью получения прибыли.
Infura
Infura - это продукт IaaS (Infrastructure as a Service), призванный облегчить разработчикам и пользователям доступ к данным Ethereum. Действуя как полноценный узел Ethereum, он предлагает интерфейс API, который позволяет DApps быстро подключаться к платформе Ethereum для взаимодействия без запуска локального узла Ethereum. В число ее клиентов входят Metamask, Uniswap, Compound и др.
Алхимия
Alchemy предоставляет SDK и API для создания многоцепочечных Web3 DApps, а также обучает пользователей использованию этих инструментов через сообщества и университетские инициативы. Alchemy поддержала более $100 млрд. стоимости транзакций в цепочке, имеет более 10 млн. конечных пользователей и принесла более $1,5 млрд. роялти. Среди известных клиентов - Opensea, GMX и AAVE.
Ankr
Ankr предлагает различные услуги узлов, включая публичные и частные узлы, поддерживая более 30 блокчейнов. Ankr также предоставляет API-интерфейсы на основе протоколов RPC и WebSocket, а также несколько инструментов разработки и SDK, таких как Web3.js и Truffle, позволяющих разработчикам легко создавать и развертывать блокчейн-приложения. Их клиентская база включает Binance, Sushiswap, Meta Apes и др.
Quicknode
QuickNode предоставляет пользователям услуги API непосредственно через выделенные узлы. Он поддерживает различные регионы, множество тестовых сетей и архивных узлов, предлагая разработчикам повышенную производительность доступа к блокчейну и большую стабильность. Функции включают интуитивно понятную приборную панель, набор аналитических средств и программу записи удаленных процедурных вызовов, поддерживающую более 20 цепочек. Среди клиентов - компании Nansen, Algofi и Dapprader.
BlockPI
BlockPI - это RPC с распределенной сетевой структурой, распределенный многоцепочечный ускоряющий слой, участвующий в децентрализованной среде Web3. В начале 2023 года он успешно модернизировал свой публичный RPC, предложив более стабильный и быстрый бесплатный сервис RPC. Теоретически, его архитектура фундаментально решает проблему перегруженности RPC-запросов и может похвастаться бесконечной масштабируемостью.
С постоянным развитием технологии блокчейн и все более широким внедрением Web3, сервисы RPC, как один из основополагающих сервисов, имеют многообещающее будущее. Спрос со стороны разработчиков на услуги RPC предсказуемо будет расти. С точки зрения отдельных лиц, часто торгующие трейдеры, которым требуется более высокая скорость транзакций, могут извлечь большую выгоду, выбрав менее используемый публичный RPC или инвестировав в частный RPC, особенно для таких операций, как сброс денег по воздуху или чеканка NFT.