Dolos Базовый на Rust Легковесный Узел Данных для Разработчиков Cardano
TxPipe представила Dolos на встрече Cardano Developers Office Hours, описывая легковесный узел данных Cardano на основе Rust, созданный для снижения нагрузки на инфраструктуру и предоставления разработчикам гибкого доступа к данным блокчейна.
By SongMarketCap
На Cardano Developers Office Hours был представлен Сантьяго Кармуага, генеральный директор и основатель TxPipe, с технической презентацией Dolos, легковесного узла данных Cardano, написанного на Rust. Сессия была сосредоточена на разнообразии инфраструктуры, модульности и упрощении доступа к данным блокчейна Cardano для приложений, кошельков и серверных служб.
Dolos был представлен как вспомогательный инструмент, а не замена существующего узла Cardano. Его цель — обеспечить гибкий слой запросов для команд, которым нужны надежные данные цепочки без необходимости управления полной инфраструктурой.
Dolos нацелен на улучшение опыта разработчиков Cardano и доступ к данным
TxPipe разрабатывает инструменты с открытым исходным кодом для разработчиков Cardano, и Dolos вписывается в этот более широкий фокус на улучшении опыта разработчиков. Кармуага рассказал, что одной из первых трудностей, с которыми он столкнулся в экосистеме Cardano, было получение данных с узла.
В некоторых экосистемах блокчейнов разработчики могут сделать запрос к конечной точке и получить информацию о последнем блоке, транзакции или состоянии адреса. В Cardano этот процесс более технически сложен, так как включает мини-протоколы Ouroboros, бинарные форматы и пользовательскую сетевую модель.
Согласно презентации, Dolos был создан как альтернативный и дополняющий узел для определенного варианта использования, предоставляя разработчикам более богатый и гибкий способ запроса данных из цепочки Cardano. Это важно для команд, создающих приложения, кошельки и сервисы данных, которым не нужно участвовать в консенсусе или производить блоки, но требуется стабильный серверный интерфейс для чтения данных цепочки.
Кармуага также сравнил Dolos с DB Sync. DB Sync остается популярным инструментом для глубокого доступа к данным Cardano на основе SQL, но требует узла Cardano, PostgreSQL и рабочего процесса синхронизации. Dolos ориентирован на случаи, когда приложения уже знают, какие данные им нужны, и могут использовать более эффективные API вместо полной динамической SQL базы данных.
Узел Cardano на основе Rust поддерживает Blockfrost, Kupo и UTXRPC
Dolos предоставляет несколько API-интерфейсов для внешних приложений. Один из них — интерфейс gRPC, использующий спецификацию UTXRPC, разработанную для случаев, когда компактная бинарная коммуникация и низколатентные запросы имеют значение. Dolos также включает API, напоминающий Blockfrost, что позволяет командам, уже использующим конечные точки формата Blockfrost, с меньшими изменениями перенаправить текущие приложения к Dolos.
TxPipe сообщила, что тесно сотрудничала с командой Blockfrost и использовала соответствующие тесты Blockfrost для проверки совместимости конечных точек. По словам Кармуага, Dolos проходит более 900 тестов на соответствие, хотя он не поддерживает все конечные точки Blockfrost, так как некоторые были исключены после анализа затрат и выгод.
Dolos также предоставляет мини-API Kupo, сосредоточенный на наборе UTXO, данных и скриптах, используя шаблоны запросов, знакомые пользователям Kupo. Кроме того, он открывает мини-протоколы узел-к-клиент Cardano, включая запросы локального состояния и синхронизацию цепочки. Это позволяет некоторым инструментам, ожидающим взаимодействия с узлом Haskell, подключаться к Dolos и использовать часть тех же API-интерфейсов.
Эта конструкция позиционирует Dolos как адаптер инфраструктуры для приложений Cardano. Кошельки, строители транзакций, обозреватели и инструменты промежуточного уровня могут использовать различные шаблоны доступа в зависимости от того, нужна ли им совместимость с Blockfrost, запросы UTXO в стиле Kupo, производительность UTXRPC или интерфейс сокета, более близкий к стандартной среде узла Cardano.
Модель хранения сдвижного окна и предпосылки доверия к узлу-ретранслятору
Dolos включает понятные компромиссы. Кармуага рассказал, что Dolos не выполняет полный консенсус или полную проверку блоков при извлечении данных. Вместо этого он подключается через протоколы узел-к-узлу к ретранслятору, локальному или публичному, выбранному оператором в качестве источника данных. Это создает предпосылку доверия между Dolos и используемым ретранслятором.
Для разработчиков приложений такая модель может подойти для вариантов использования доступа к данным, где команде не нужно запускать полный локальный стек узлов. Во время сессии было отмечено, что DB Sync также зависит от узла как источника данных, тогда как Dolos может подключаться к ретранслятору без необходимости взаимодействия с локальным сокетом узла Haskell.
Одной из технических особенностей, выделенных в презентации, является модель хранения сдвижного окна Dolos. Операторы могут сохранить всю историю цепочки, но также могут выбрать ограниченный временной промежуток. В этом режиме Dolos хранит блоки, транзакции, скрипты, данные и данные UTXO, относящиеся к выбранному периоду, а более старые данные удаляются из локального хранилища. Это может сократить требования к диску для приложений, которым нужна только недавняя активность цепочки, а не вся история с эпохи Byron.
TxPipe также показала данные о производительности из основной сети Dolos. Согласно приборной панели, показанной на сессии, одна из установок обрабатывала около 180 запросов в секунду, с 99-м процентилем латентности менее 800 миллисекунд и 50-м процентилем около 4-5 миллисекунд. Кармуага отметил, что эти результаты связаны с тем, что Dolos является компактным одноэтапным компонентом на Rust, в сочетании с локальным хранилищем ключ-значение, деревьями LSM, фильтрами Блума и определенными стратегиями индексации.
Презентация включала примеры практического использования Dolos, включая Lace Anatomy, обозреватель цепочки, ориентированный на разработчиков, который использует Dolos как серверный процесс без DB Sync. Кармуага также упомянул конечные точки платформы Demeter и другие команды экосистемы Cardano, использующие Dolos в качестве основы для доступа к данным.
Dolos предлагает приложениям Cardano серверный вариант, который может обслуживать шаблоны доступа, похожие на Blockfrost и Kupo, а также обеспечивать UTXRPC без необходимости использования DB Sync для каждого случая. Для кошельков, обозревателей и служб данных разница в операционной модели заключается в более легком доступе к данным цепочки Cardano, когда участие в полном консенсусе не требуется.