machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Изучение Ethereum с помощью Geth, GraphQL и Grid

Дата публикации Oct 3, 2019

GraphQL - это язык запросов для API, который позволяет запрашивать большие наборы данных, указав формат ожидаемого результата. Наш большой набор данных будет блокчейном Ethereum, и мы будем запрашивать у него такие вещи, как события, состояние синхронизации клиента и данные транзакций.

Ethereum Grid упрощает настройку и использованиеГетклиент go-ethereum, включая его сервер GraphQL через доступный пользовательский интерфейс. Это краткое руководство поможет вам начать.

Geth обслуживает интерфейс GraphiQL, доступный в Grid.

Шаг 1: Скачать Grid

Ethereum Grid

Миссия Grid состоит в том, чтобы предоставить пользователям возможность использовать новейшие и лучшие из набора инструментов Ethereum.

grid.ethereum.org

Grid - это настольное приложение, которое позволяет легко загружать и настраивать инструменты Ethereum. Сборки для Mac, Windows и Linux доступны по адресуgrid.ethereum.org, После загрузки и запуска Grid будет отображаться в строке меню вашей ОС в виде логотипа Ethereum.

Шаг 2. Настройка и запуск Geth

Перейдите к плагину Geth в Grid, затем на вкладке «Версия» загрузите последнюю версию Geth (поддержка GraphQL была введена в v1.9.0). Примечание: если у вас уже установлен Geth в вашей системе, этот шаг все еще необходим, если вы хотите настроить его через Grid. Сетка управляет двоичными файлами локально.

На вкладке «Настройки» выберите раскрывающийся список дляEnable GraphQL Server, Мы просто исследуем, такGörli (testnet)это хороший вариант для сети. После настройки включите переключатель, чтобы запустить Geth.

Шаг 3: перейдите к интерфейсу GraphiQL

GraphiQL - это фантастическая среда разработки в браузере для изучения и запроса API-интерфейсов GraphQL. Geth делает этот интерфейс доступным наhttp://localhost:8547, но вы также можете получить к нему доступ в Grid через приложение Geth GraphQL Explorer, которое можно найти на вкладке «О программе».

Запустите интерфейс GraphiQL изОколоВкладка.

Шаг 4: Выполнить несколько запросов

Давайте рассмотрим некоторые примеры.

Запросы для синхронизации состояния

Этот запрос возвращает данные о состоянии синхронизации вашего узла.

Запрос на события

Этот запрос (изстартовый пост) находит ENSHashRegisteredсобытия в сети Görli и возвращает адрес пользователя, выполняющего регистрацию, а также номер блока и метку времени, в которую он был включен.

Построй свой собственный

Используйте документацию схемы, чтобы узнать, что это возможно (подсказка: кнопка «Документы» в верхнем правом углу GraphiQL). Когда вы начнете вводить запрос, GraphiQL автоматически завершит все возможные варианты, основываясь на схеме.пример использованияпредоставленный EthQL также должен оказаться полезным.

Бонус: использование данных GraphQL

Теперь вы можете создать веб-приложение, которое подключается к экземпляру GraphQL, запущенному наlocalhost:8547и отправлять запросы на/graphqlконечная точка с использованием клиента, какАполлон,

Если вы хотите дополнительно настроить некоторые флаги Geth GraphQL, вы можете нажатьUse custom flagsи настройте следующие атрибуты:

--graphqlВключить сервер GraphQL

--graphql.addr valueИнтерфейс прослушивания сервера GraphQL (по умолчанию: «localhost»)

--graphql.port valueПорт прослушивания сервера GraphQL (по умолчанию: 8547)

--graphql.corsdomain valueРазделенный запятыми список доменов, от которых принимаются запросы от разных источников (принудительно устанавливается браузером)

Вызов функции контракта

Выполнение функции контракта может быть выполнено с помощьюcallфункция с подписью метода контракта. Подпись метода контракта - это хэш метода, который вы хотите вызвать, напримерbalanceOfнаряду с закодированными параметрами, такими какaddress, Вы можете узнать больше оКонтракт ABIи увидеть полезные утилиты для получения подписи отweb3.js,

В следующем фрагменте кода я покажу, как запросить баланс токенов ERC20 с помощьюApollo GraphQL клиент:

Завершение

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

Реализация GetQL в GraphQL основана наEIP 1767: интерфейс GraphQL к данным узла Ethereumс усилиями во главе сКоманда Consensys EthQL, Следите за ними для более захватывающих разработок в дополнительных полях и типах запросов, таких как переводы и балансы ERC20, имена ENS и многое другое.

Если у вас возникнут какие-либо проблемы или у вас есть предложения по Grid или нашей интеграции с Geth, пожалуйста,поделитесь с нами своим отзывом, Есть ли другой проект, который вы хотели бы видеть интегрированным в Grid для обеспечения доступного пользовательского интерфейса? Дайте нам знать!

Оригинальная статья

Footer decor

© machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map