Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
blockchained
5 лет назад

🌐 Альфа-релиз от EOSIO™: инструменты анализа истории

Как известно, блокчейны растут с каждой аутентифицированной транзакцией, а значит проблема с запросами и чтением истории и данных о состоянии становится всё более явной. Чтобы её решить, мы начали работать над серией инструментов анализа истории, предназначенных для того, чтобы сделать данные блокчейнов на основе EOSIO более доступными. Вы можете найти больше технических деталей и документации в репозитории History Tools на GitHub. Документацию к инструментам анализа истории можно найти здесь.

Не так давно мы выпустили плагин истории состояния (State History), который облегчает доступ к данным блокчейна. Этот плагин сохраняет данные состояния блокчейна в новом формате flat-file и отображает интерфейс веб-сокета для чтения данных блока/состояния. С выпуском альфа-версии инструментов анализа истории мы сделали ещё один шаг в этом направлении и представили заполнители баз данных для чтения данных состояния и заполнения баз данных PostgreSQL и LMDB, которые можно запрашивать с помощью специализированных клиентских и серверных WASM.

Качественный пользовательский опыт и приложения, созданные на EOSIO, требуют наличия инструментов, позволяющих приложениям эффективно получать доступ и запрашивать данные из блокчейна и смарт-контрактов. Согласно своей архитектуре системы на базе блокчейна хранят данные последовательно, и их извлечение является не самой простой задачей для масштабируемых систем запросов и поиска с произвольным доступом.

Поскольку это альфа-релиз, мы намерены вносить изменения на протяжении всего процесса разработки. Мы также надеемся, что обратная связь от членов сообщества даст нам дополнительные рекомендации по мере доработки этих инструментов.

Язык WASM-Query

Язык WASM-Query (WASM-QL) реализует архитектуру клиент-сервер для разработки и выполнения запросов в WASM. Этот шаблон реализации позволяет авторам контрактов проектировать и кодировать запросы с использованием того же инструментария, который применялся для создания контрактов и задействования архитектуры запросов клиент-сервер. Это также сводит к минимуму взаимный обмен данными между клиентом и сервером, оптимизируя скорость и эффективность. После включения эта система позволит просматривать исторические состояния на любой заданной высоте блоков. Кроме того, поскольку репликация в этой системе отходит от nodeos к процессам запросов, не требующим значительного объема памяти, это в большей степени способствует масштабируемости.

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

Существует два типа запросов, которые поддерживаются wasm-ql-pg:

  • Бинарные запросы являются наиболее гибкими. WASM на стороне клиента упаковывает запрос в двоичный формат, WASM на стороне сервера, работающий на WASM-QL, выполняет запрос, затем выдает результат в двоичном формате, после чего WASM на стороне клиента преобразует двоичный файл в JSON. Набор инструментов помогает авторам создать оба WASM.

  • Эмуляция /v1/RPC API.

Со временем мы можем отказаться от WASM на стороне клиента и переключить формат запроса первого типа на JSON RPC, Graph QL или другой формат. Мы опираемся на отзывы членов сообщества, когда принимаем такие решения, поэтому, пожалуйста, оставьте комментарий в репозитории с той рекомендацией, которую вы поддерживаете.

Fill-pg

Fill-pg предоставляет приложениям легкое решение для сбора всех соответствующих данных, которые они обычно получают при мониторинге основного чейна. Собираемая информация включает в себя:

  • Информация из заголовка каждого блока
  • Список транзакций и действий, включая встроенные действия и отложенные транзакции
  • История таблицы контрактов на уровне блоков
  • Таблицы, отслеживающие историю состояния блокчейна, в том числе:
  • Аккаунты, включая права доступа и связанные ссылки
  • Лимит и текущее использование ресурсов аккаунта
  • Код контракта
  • ABI контракта
  • Параметры консенсуса
  • Активированные обновления консенсуса

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

Fill-lmdb, wasm-ql-lmdb

Эта пара действует идентично fill-pg и wasm-pg, однако данные хранятся с использованием lmdb, а не postgresql; в качестве встроенной базы данных lmdb может обеспечить преимущества в плане администрирования.

Обеспечение доступности данных блокчейна

Чтобы обеспечить качественный пользовательский опыт в более сложных приложениях, которые поддерживают целостность данных блокчейна, разработчикам необходим надежный доступ к детерминированным базам данных, к которым можно обращаться так же, как к их аналогам, не работающим с блокчейнами. Узлы блокчейна имеют узкий спектр вариантов запросов, что вызывает затруднения, когда сложные приложения пытаются сохранить и извлечь индексированные данные. Традиционно это оставляло разработчикам два варианта: либо обработка данных в приложении, либо сохранение отсортированных данных в самом блокчейне, что обычно неэффективно и дорого.

Сокращая поток между базами данных приложений и блокчейном EOSIO, мы целенаправленно продолжаем разрабатывать удобные инструменты для масштабируемого доступа к данным, что описано в EOSIO Strategic Vision. По мере получения новых отзывов мы продолжим оптимизировать методы, снижающие нагрузку на пул ресурсов и помогающие разработчикам создавать более эффективные архитектуры приложений.

Оставайтесь на связи

Мы ценим усилия тех, кто продолжает помогать тестировать нововведения и вносить вклад в развитие этих инструментов, чтобы они служили на пользу сообществу EOSIO. Если вы хотите поделиться своим мнением или начать более тесно сотрудничать с нашей командой по улучшению EOSIO для разработчиков, вы можете отправить нашей команде по связям с разработчиками письмо по адресу developers@block.one.

Помните, что вы также можете оставаться в курсе будущих событий, подписавшись на нашу рассылку на новом веб-сайте EOSIO. Мы намерены и дальше улучшать удобство использования программного обеспечения EOSIO, продолжая закладывать фундамент для массового распространения технологии блокчейн.


Примечание: Все материалы, приведённые выше, а также на вебинарах и других мероприятиях предоставляются с учетом данного важного уведомления, с условиями которого вы должны ознакомиться. Уведомление содержит важную информацию о ограничениях, касающихся нашего программного обеспечения, публикаций, товарных знаков, сторонних ресурсов и прогнозных заявлений. Получая доступ к любому из наших материалов, вы соглашаетесь с условиями уведомления.

Первоначально опубликовано на https://eos.io.


Переведено @blockchained

Оригинал поста: ЗДЕСЬ


Если вам нравится то, что мы делаем - поддержите блокпродюсера blockchained в сети EOS

Развивайте сеть EOS вместе с нами - делегируйте свой голос proxy: dposproxyeos


Телеграм чат: https://t.me/EOS_RU


Загрузите десктопное приложение с открытым исходным кодом RuDex


Вы можете торговать токенами EOS на RuDEX

3
287.130 GOLOS
На Golos с January 2017
Комментарии (2)
Сортировать по:
Сначала старые