Близится извержение вулкана! Углубляемся в Lava Network.
Всем привет в эфире MMS и сегодня мы углубимся в проект Lava Network, мы уже его обозревали, вот ссылка на видео и статью. Mы углубимся в Lava, поговорим об RPC, что это, откуда и куда, узнаем какие проблемы с RPC возникают у разработчиков и тд,погнали
Lava Network — это децентрализованная платформа, целью которой является создание открытого многоцепочного стандарта для удаленных вызовов процедур блокчейна (RPC). Он предоставляет протокол, который обеспечивает надежный доступ к данным RPC во всех цепочках, стимулируя поставщиков RPC присоединиться к сети. Это устраняет необходимость для пользователей RPC поддерживать свои собственные узлы или зависеть от доверенных третьих сторон. Платформа обеспечивает высокое время безотказной работы, целостность данных, масштабируемость, конфиденциальность и устойчивость к цензуре. Как проект Cosmos, Lava работает с цепочкой приложений, построенной с использованием консенсуса Cosmos Software Development Kit (SDK), Ignite и Tendermint Byzantine Fault Tolerance (BFT), в целом как и все проекты построенные на Cosmos.
В данный момент сеть все еще находится в фазе тестнета, но есть некоторые новости по этому поводу. Точную дату майнета мы не знаем как и сами разработчики( думаем что где то в конце 2023-начале 2024). По роадмапу дела обстоят так:
- 1 квартал 2023 года обкатка работоспособности сети.
- 2 квартал 2023 обкатка API и приложений.
- как только все будет работать на 100%, ребята выходят в мейн.
Но даже на данном этапе разработки, Lava Network уже имеет кучу крутых партнерств, с такими сетями как StarkNet, Phantom, Poligon, Aptos, Evmos, Celo, Ethereum, Juno, Optimism, Arbitrum, Cosmos, Canto, Osmosis, к выходу в майнет их будет еще больше!
Lava существует как протокол, сеть и стандарт для решения проблем Web3 RPC, почему мы так считаем? Давайте разберем этот момент поближе :
Прежде всего, Lava — это протокол, который работает на специально созданной сети приложений Proof-of-Stake как и все сети на Cosmos. Он предоставляет динамически генерируемый список сопряжений для тех, кто хочет подключиться к провайдерам RPC. Список создается с помощью детерминированного вычисления, которое гарантирует, что каждый клиент получит список сопряжения в течение одного и того же периода времени. Как для справедливости, так и для обеспечения качества список сопряжений обновляется через регулярные промежутки времени, которые совпадают с определенным количеством блоков, добавляемых в цепочку. Кроме того, провайдеры разделяются в катергори по задержке, доступности и свежести, что гарантирует, что протокол ссылается на качественных провайдеров.
Lava предоставляет дополнительную инфраструктуру, встроенную в протокол, которая расширяет возможности RPC. Эти функции включают в себя:
Lava — это сеть, а вернее, криптосеть. Благодаря работе активного набора валидаторов блокчейна, участники децентрализованной сети обеспечивают бесперебойную работу без какого-либо централизованного вмешательства. Lava обеспечивает одноранговое соединение между поставщиками RPC и потребителями, такими как разработчики и приложения, с транзакциями, учитываемыми в вычислительных единицах (CU) и токенах Lava.
С точки зрения сети у Lava есть три основные роли:
Совместное действие этих трех сторон — это то, что позволяет Lava сопоставлять и обслуживать список функциональных и надежных узлов для доступа Web3 RPC. Это не обычное достижение — проблема Web3 RPC требует обильного, доступного и надежного RPC, а также правильно мотивированных средств для расчетов по платежам.
В конечном счете, Lava — это стандарт с открытым исходным кодом. Он предоставляет стандартные средства для представления и использования данных блокчейна. Поскольку быть поставщиком RPC — сложное предприятие, Lava предоставляет стандартизированный формат для поставщиков RPC, чтобы сделать свои услуги доступными для децентрализованного пула потребителей RPC. При использовании Lava, провайдерам RPC не нужно будет искать пользователей, рекламировать или настраивать платежные шлюзы. Они могут просто убедиться, что их цепочка поддерживается, и начать действовать, следуя шагам, описанным в документации.
Самое важное, что следует отметить, это то, что любой человек в любой цепочке может довольно просто добавить свою цепочку в протокол, при условии, что это согласовано с существующими заинтересованными сторонами через управление в цепочке. Это делается путем предложения спецификаций или «спецификаций», которые эффективно демократизируют процесс предоставления RPC. Их процесс добавления новых спецификаций полностью открыт. Нет централизованной партии, которая выбирает, кто будет править балом! Разработав и предложив спецификацию, каждый может добавить любую цепочку блоков и любой протокол в любое время.
Что такое RPC и как это понять ?
Если вы уже тертый калач на просторах децентрализации и уже давно плаваете как акула в море блокчейнов, то вы знаете что такое RPC, а если нет, то давайте разбираться, хотя и старичкам не помешает вспомнить былые времена(хах)!
RPC — это программный коммуникационный протокол, который одна программа может использовать для запроса услуги у программы, расположенной на другом компьютере в сети, без необходимости разбираться в деталях сети. RPC используется для вызова других процессов в удаленных системах, таких как локальная система. Вызов процедуры также иногда называют вызовом функции или вызовом подпрограммы . Так же сразу хочется затронуть тему эндпоинтов(endpoints, конечная точка). RPC - это один из видов эндпоинтов.
RPC использует модель клиент-сервер. Запрашивающая программа — это клиент, а программа, предоставляющая услуги, — это сервер. Подобно вызову локальной процедуры, RPC представляет собой синхронную операцию, требующую приостановки запрашивающей программы до тех пор, пока не будут возвращены результаты удаленной процедуры. Однако использование облегченных процессов или потоков, совместно использующих одно и то же адресное пространство, позволяет выполнять несколько RPC одновременно.
Когда человек хочет узнать что-то о блокчейне да и вообще хоть о чем либо, он обычно открывает браузер и начинает гуглить, на странице которого представлена вся искомая им информация. Это просто, быстро и безболезненно! Однако за кулисами этот веб-сайт связывается с узлом и запрашивает эту информацию. Этот процесс часто называют удаленным процедурным вызовом или просто RPC для краткости.
Как только запрошенная информация возвращается от узла через RPC, она представляется конечному пользователю в предварительно подготовленном формате, который легко усваивается и понимается. Это происходит постоянно — при совершении криптовалютных транзакций, развертывании смарт-контрактов, даже при использовании децентрализованных бирж. Фактически, такие кошельки, как Metamask, автоматизированные протоколы создания рынка и другие децентрализованные приложения с красивыми интерфейсами используют RPC для выполнения своей работы.
Намного больше нужно знать о RPC и различных форматах запросов, которые делаются и выполняются. На данный момент мы должны понимать, что каждый RPC несет с собой важные данные и что важные данные должны быть доставлены конечному пользователю следующим образом:
- Безопасно — не имеет злоумышленников или угонщиков.
- Быстро — происходит максимально мгновенно.
- Надежно — выдает данные сразу, как только они запрашиваются.
- Точно — каждый раз дает правильные данные.
Если данные доставляются небезопасно, пользователь может отправить ложную транзакцию или утратить какую либо информацию. Если данные не доставляются быстро, они могут быть устаревшими или неактуальными к моменту их получения пользователем. Если данные недоступны по запросу, в веб-приложении могут возникнуть ошибки и проблемы. Если данные неточны, их нельзя использовать или представлять без распространения информации о сбоях по всей платформе.
Задача состоит в том, чтобы соответствовать всем четырем этим критериям одновременно. Хотя конечные точки RPC относительно многочисленны для многих блокчейнов и экосистем, поиск безопасных, быстрых, надежных и точных эндпоинтов RPC для каждой экосистемы остается постоянной проблемой для web3!
Lava предоставляет шлюз, который представляет собой управляемое решение для доступа к API блокчейна на основе проекта. Они предоставляют SDK, который представляет собой полностью децентрализованное решение для программного доступа к многоцепочечному RPC. Кроме того, они предоставляют серверный комплект, который можно запустить на узле Lava для создания надежной серверной части для высокопроизводительных приложений корпоративного уровня, требующих RPC по различным протоколам.
Какие проблемы с RPC возникают у разработчиков ?
Разработчики, использующие RPC, часто сталкиваются с ненадежными/недоступными эндпоинтами, устаревшими данными, устаревшими списками узлов, ограничениями скорости, отсутствующей и запутанной документацией, и ожидается, что они будут размещаться самостоятельно. В нашем любимом Web3 не должно быть таких проблем!
Так вот, поскольку мир технологии блокчейна и децентрализованных приложений продолжает расти, новые (иногда даже и старые!) разработчики Web3 сталкиваются с множеством беспрецедентных проблем в Интернете. Действительно, есть множество проблем, которые беспокоят нас с вами (ну либо других разработчиков), когда мы стремимся создавать самые передовые и потрясающие технологии. Давайте рассмотрим наиболее распространенные проблемы с RPC, с которыми сталкиваются разработчики web3, о которых вы уже могли знать или только узнаете.
Ненадежность и недоступность
Конечные точки RPC отключаются в моменты высокой нагрузки, и централизованные провайдеры не несут никакой ответственности.
Упавший узел — это, ну, упавший узел, что уж. В момент наибольшей необходимости вы можете обнаружить, что ваша конечная точка RPC внезапно перестает функционировать. В этом случае вы, вероятно, находитесь в середине процесса чеканки своих первых NFT или пытаетесь перевести в стейлблы большой аирдроп для вашего комьюнити, которое теперь думает, что вы их обманули, а вы тут совершенно не причем. Решением было бы надежный и доступный RPC, но, увы, ваш когда-то надежный и доступный эндпоинт рухнул из-за огромного спроса на ваш узел RPC, ибо все ламанулись за дропом(условно). Это огромна проблема для всего криптокомьюнити! Вам (и нам) нужен доступный, бесплатный и быстрый RPC, что бы использовать его. Но в сегодняшнем web3 сложно получить все это, аж тем более сразу.
Самостоятельный хостинг, также известный как Operation Overnight DevOps
Разработчикам приходится размещать собственные узлы, когда сторонние узлы ненадежны, недоступны или небезопасны.
Добро пожаловать в Web3, где вся инфраструктура децентрализована! Вам придется управлять своей собственной инфраструктурой, если вы заботитесь о децентрализации, а очевидной альтернативы нет! Во многих распространенных сетях RPC доступен бесплатно для тестирования, но если вы заинтересованы в создании приложения или чего то подобного, вам потребуются надежные конечные точки RPC.
Большинство разработчиков настойчиво осваивают новые навыки и готовы стать опытными в развертывании и обслуживании узла — это одно из многих необходимых зол, нужных для независимости от кого либо. К сожалению, этот процесс отнимает время от написания кода, включает в себя периодические расходы, требует отдельного набора технических навыков, чем программирование, и требует надлежащего планирования будущего масштабирования. Короче говоря, Operation Overnight Devops .
Устаревшие списки URL
Списки URL-адресов RPC не всегда актуальны и часто содержат старые и неработающие ссылки на отключенные конечные точки RPC.
Чаще всего списки RPC хранятся в каналах сервера Discord, в репозиториях github и на веб-сайтах, исходный код которых хранится в репозиториях github(хах)! Это означает, что их должны обновлять активные участники, которые вежливо управляют списком на благо сообщества. Как вы понимаете, если у вас есть ЛЮБЫЕ активные сторонние проекты , этими списками можно немного пренебречь — и часто их исправляют только после того, как кто-то пожаловался, что ссылки не работают, узлы не отвечают или запросы истекают. Как только это происходит, кто-то (обычно) выходит из задней части "магазина", берет их с полки и сдувает с них пыль только для того, чтобы вернуться обратно в небытье. Обычно к этому времени истекая потом и выругавшись как следует матом ты двигаешься дальше…
Устаревшие данные
Иногда оказывается, что узлы не синхронизированы, когда они возвращают данные, которые когда-то были правильными, но больше не являются таковыми.
В среде реального времени, такой как блокчейны с коротким циклом консенсуса, потребность в актуальных и точных данных очень важна для бесперебойной работы приложений. Тем не менее, отсутствующие или противоречивые результаты из-за старых индексированных данных или не синхронизированных узлов иногда доставляют неудобства. Это наиболее очевидно, когда вы взаимодействуете с цепочкой с коротким временем блокировки и запрашиваете текущую высоту блока, но получаете высоту блока немного меньше, чем ожидалось, по сравнению с проводниками или другими узлами. По той или иной причине конечная точка может вернуть результат, который, хотя когда-то был правильным, уже не является таковым. Ну что ж, получается идем на другую конечную точку. Вот вам и ваша мечта о мгновенных ZK-доказательствах с поддержкой смарт-контрактов .
Ограничения по тарифам!
Чтобы защитить себя от чрезмерного использования и злоупотреблений, многие общедоступные конечные точки RPC имеют ограничение по скорости.
Да, ваше удобное маленькое приложение является надежным и теоретически может одновременно обрабатывать 10 000 транзакций в секунду, ставя в очередь все исходящие запросы и кэшируя все входящие данные . Вот только об одном ты забыл! ОГРАНИЧЕНИЯ ТРАФИКА. Они (владельцы RPC) накладывают жесткие ограничения на производительность вашего приложения, ограничивая ваши возможности, хотя, у вас есть полное право использовать RPC так, как вам нужно. Ограничение скорости говорит — СТОП! ты идешь слишком быстро, чтобы мой узел мог справиться. На самом деле они предотвращают злоупотребление и чрезмерное потребление основных общественных благ, но, будучи неприятностью, препятствуют быстрым инновациям.
Отсутствует/запутанная документация
В зависимости от вашего варианта использования вы можете не найти достаточный пример кода того приложения, что вы пытаетесь сделать.
Вы хотели знать, как все реализовано, верно? Вам нужен был ясный и недвусмысленный единый источник актуальных данных об используемых интерфейсах, не так ли? Чаще всего эти вещи могут стать немного сложными, особенно если вы являетесь новичком в пространстве web3. В Web3 много молодых проектов со зрелой экосистемой; часто документация просто не поспевает за темпами технологического роста и развития. На этом уровне приключений часто нет карт, поэтому ваше передвижение по миру web 3 становится немного сложнее. Сделай всем одолжение и полностью задокументируй то, что ты делаешь! След из хлебных крошек, который вы создадите, поможет будущим заблудившимся найти свой путь.
В итоге, воды океана Web 3 по-прежнему тревожны для начинающих разработчиков. Без сомнения, нужно и можно проделать большую работу, чтобы обеспечить более плавный процесс разработки в ландшафте. Неразумно иметь дело с устаревшими списками, устаревшими данными, отсутствующими документами, ограничениями скорости и самообслуживанием инфраструктуры только для создания простых рабочих инструментов и утилит! Будущее web3 требует решения, которое позволит начинающим разработчикам получать беспроблемный опыт без подобных проблем и ограничений.
Как Lava обслуживает RPC?
Lava соединяет приложения с агрегированной сетью ведущих поставщиков RPC. Разработчики используют вызовы RPC для отправки и получения данных в блокчейнах и из них. Стимулируя децентрализованную сеть поставщиков без разрешений, Lava предоставляет открытый стандарт для API-интерфейсов блокчейна, позволяя разработчикам надежно и легко подключать свои приложения к нескольким блокчейнам. Вы можете получить бесплатный RPC от их шлюза уже сегодня.
К сожалению, часто люди ошибочно связывают децентрализацию с медлительностью, неэффективностью и даже неисправностью.
Тем не менее, децентрализованная сеть провайдеров RPC является неотъемлемой частью современной инфраструктуры web3. В Lava каждое соединение между поставщиком RPC и потребителем является важным взаимодействием, которое может передавать ценные и срочные данные, которые обеспечивают работу блокчейна. Поскольку потребители постоянно подключаются к новым поставщикам, важно поддерживать качество обслуживания при каждом взаимодействии. В первую очередь это достигается за счет создания конкуренции между провайдерами, при этом провайдеры с наивысшими баллами получают больше услуг, тем самым повышая общее качество услуг всего набора провайдеров.
Lava разработала инновационную систему качества обслуживания (QoS) для мониторинга и стимулирования поставщиков, которая устраняет несоответствия в обслуживании RPC; Таким образом, Lava создает надежную службу RPC с несколькими цепочками — ставка Lava заключается в том, чтобы предложить RPC с меньшим временем простоя, более точными ответами и большей конфиденциальностью, чем вы можете получить от централизованного поставщика.
Система контроля качества обслуживания Lava
Чтобы гарантировать, что провайдеры RPC поддерживают высокий уровень обслуживания, Lava разработала инновационную систему качества обслуживания (QoS). Потребители оценивают доставку каждого поставщика в каждой геолокации и тем самым стимулируют их предлагать более качественные услуги. Чтобы лучше понять это, вам нужно знать четыре показателя, по которым потребители оценивают поставщиков:
1. Доступность (время безотказной работы)
Чтобы обеспечить бесперебойную работу их системы, необходимо учитывать несколько ключевых факторов. Одним из наиболее важных из них является доступность (время безотказной работы). Им нужно убедиться, что их система постоянно работает, чтобы пользователи могли получать доступ к данным, когда им это нужно.SDK обеспечивает p2p-доступ к Lava, что означает еще большую доступность.
2. Производительность (задержка)
Другим важным фактором является производительность, особенно задержка. Чтобы обеспечить хорошее взаимодействие с пользователем, им необходимо убедиться, что их система быстро реагирует на запросы пользователей. Это означает, что им нужно свести к минимуму время, необходимое системе для обработки этих запросов.
3. Синхронизация (высота блока)
Им также необходимо учитывать синхронизацию, особенно высоту блока. Важно, чтобы все узлы сети имели одну и ту же копию блокчейна, чтобы транзакции можно было проверять и своевременно добавлять в блокчейн. Обеспечение синхронизации означает, что данные будут свежими и точными.
4. Репутация (превосходство)
Кроме того, им нужно знать о выбросах и репутации. Если узел в их сети постоянно работает медленно или не отвечает, команде необходимо принять меры для решения проблемы. Они также должны убедиться, что любой провайдер, который указан в списке, имеет хорошую репутацию, чтобы пользователи могли ожидать, что их транзакции будут обрабатываться безопасно и эффективно. Провайдеры, которые не отвечают, в которых нет потенциала или являются не честными поставщиками, исключаются из сети и наказываются.
Все это работает вместе, чтобы обеспечить быстрый и надежный опыт RPC, который сохраняет децентрализацию и контроль со стороны пользователя! С Lava вы получаете децентрализованного, надежного и настраиваемого поставщика RPC с гарантированным качеством в нескольких цепях.
Что делает Lava высоконадежным RPC-сервисом?
Все просто: если один провайдер выйдет из строя, сеть все равно будет доступна.
Вкратце: в случае сбоя провайдера сеть останется доступной, и любой другой провайдер будет обслуживать невыполненные запросы RPC. Это гарантирует отсутствие простоев или перерывов в работе разработчика RPC. На каждого альтернативного поставщика, выбранного случайным образом, распространяются те же требования к качеству обслуживания, что и на основного поставщика. Эти избыточные требования являются важной функцией, обеспечивающей надежность и стабильность сети, особенно в критически важных средах, где простои могут иметь серьезные последствия. С таким подходом вы можете быть уверены, что ваше приложение всегда будет доступно и работает, независимо от того, что происходит с отдельным провайдером RPC.
Заключение
Мы живем в мире, где RPC был централизован, а качество обслуживания (QoS) не гарантировалось. Lava Network меняет это, предоставляя разработчикам надежный открытый стандарт для API-интерфейсов блокчейна, позволяющий им с легкостью подключать свои приложения к нескольким блокчейнам.
Надеюсь, мы с вами разобрались что такое RPC и как он работает, узнали как Lava собирается облегчичь жизнь разработчикам и пользователям. А на этом у нас все, берегите свой портфель и увидимся на просторах децентрализации! Пока!
Ссылки на наши ресурсы и каналы:
Email для обратной связи — [email protected]
Адреса для донатов на чашечку кофе, чтобы годного контента становилось только больше:
0x02d3C829462267d02F61FcB0bc56f117fF4D8da3 (BSC\ETH)
evmos1qtfus22xyfnaqtmpljctc4h3zll5mrdrd7yy4y (Evmos)
umee1n9as9tet92z4n8dkntpu4h3luk7savjwl6gman (Umee)
cosmos1n9as9tet92z4n8dkntpu4h3luk7savjwdv4yep (Cosmos)