Перейти к основному контенту

Введение в разработку на Эфириуме

JavaScript
ethers.js
узлы
запросы
Alchemy
Для начинающих
Элан Халперн
30 октября 2020 г.
4 минут на чтение

Ethereum and Alchemy logos

Это руководство для начинающих по разработке на Эфириуме. В этом руководстве мы будем использовать Alchemy (открывается в новой вкладке) — ведущую платформу для блокчейн-разработчиков, которая обслуживает миллионы пользователей из 70% лучших блокчейн-приложений, включая Maker, 0x, MyEtherWallet, Dharma и Kyber. Alchemy предоставит нам доступ к конечной точке API в цепи Эфириума, чтобы мы могли читать и записывать транзакции.

Мы пройдем путь от регистрации в Alchemy до написания вашего первого скрипта Web3! Опыт разработки на блокчейне не требуется!

1. Зарегистрируйте бесплатный аккаунт Alchemy

Создать аккаунт в Alchemy очень просто, зарегистрируйтесь бесплатно здесь (открывается в новой вкладке).

2. Создайте приложение Alchemy

Для взаимодействия с цепью Эфириума и использования продуктов Alchemy вам понадобится ключ API для аутентификации ваших запросов.

Вы можете создать ключи API на панели управления (открывается в новой вкладке). Чтобы создать новый ключ, перейдите в раздел «Create App» (Создать приложение), как показано ниже:

Особая благодарность ShapeShift (открывается в новой вкладке) за то, что позволили нам показать их панель управления!

Alchemy dashboard

Заполните данные в разделе «Create App», чтобы получить новый ключ. Здесь вы также можете увидеть приложения, созданные вами ранее, и те, что создала ваша команда. Получите существующие ключи, нажав «View Key» (Посмотреть ключ) для любого приложения.

Create app with Alchemy screenshot

Вы также можете получить существующие ключи API, наведя курсор на «Apps» (Приложения) и выбрав одно из них. Здесь вы можете нажать «View Key», а также «Edit App» (Редактировать приложение), чтобы добавить определенные домены в белый список, ознакомиться с инструментами разработчика и просмотреть аналитику.

3. Сделайте запрос из командной строки

Взаимодействуйте с блокчейном Эфириума через Alchemy, используя JSON-RPC и curl.

Для ручных запросов мы рекомендуем взаимодействовать с JSON-RPC через POST-запросы. Просто передайте заголовок Content-Type: application/json и ваш запрос в теле POST со следующими полями:

  • jsonrpc: версия JSON-RPC — в настоящее время поддерживается только 2.0.
  • method: метод API ETH. Смотрите справочник по API.
  • params: список параметров для передачи в метод.
  • id: ID вашего запроса. Будет возвращен в ответе, чтобы вы могли отслеживать, к какому запросу относится ответ.

Вот пример, который вы можете запустить из командной строки, чтобы получить текущую цену газа:

curl https://eth-mainnet.alchemyapi.io/v2/demo \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'

ПРИМЕЧАНИЕ: Замените https://eth-mainnet.alchemyapi.io/v2/demo на ваш собственный ключ API https://eth-mainnet.alchemyapi.io/v2/**your-api-key.

Результаты:

{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }

4. Настройте ваш клиент Web3

Если у вас уже есть клиент, измените текущий URL-адрес провайдера узла на URL-адрес Alchemy с вашим ключом API: “https://eth-mainnet.alchemyapi.io/v2/your-api-key"

ПРИМЕЧАНИЕ: Приведенные ниже скрипты должны выполняться в среде Node.js или быть сохранены в файле, а не запускаться из командной строки. Если у вас еще не установлены Node или npm, следуйте инструкциям по установке Node.js (открывается в новой вкладке).

Существует множество библиотек Web3, которые вы можете интегрировать с Alchemy, однако мы рекомендуем использовать Alchemy Web3 (открывается в новой вкладке) — полноценную замену Web3.js, созданную и настроенную для бесперебойной работы с Alchemy. Это дает множество преимуществ, таких как автоматические повторные попытки и надежная поддержка WebSocket.

Чтобы установить AlchemyWeb3.js, перейдите в каталог вашего проекта и выполните:

С помощью Yarn:

yarn add @alch/alchemy-web3

С помощью NPM:

npm install @alch/alchemy-web3

Для взаимодействия с инфраструктурой узлов Alchemy выполните в Node.js или добавьте это в файл JavaScript:

const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3(
  "https://eth-mainnet.alchemyapi.io/v2/your-api-key"
)

5. Напишите ваш первый скрипт Web3!

Теперь, чтобы перейти к практике программирования Web3, мы напишем простой скрипт, который выводит номер последнего блока из основной сети Ethereum.

1. Если вы еще этого не сделали, в вашем терминале создайте новый каталог проекта и перейдите в него:

mkdir web3-example
cd web3-example

2. Установите зависимость Alchemy Web3 (или любую другую Web3) в ваш проект, если вы еще этого не сделали:

npm install @alch/alchemy-web3

3. Создайте файл с именем index.js и добавьте следующее содержимое:

В конечном итоге вам следует заменить demo на ваш ключ HTTP API Alchemy.

async function main() {
  const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
  const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")
  const blockNumber = await web3.eth.getBlockNumber()
  console.log("The latest block number is " + blockNumber)
}
main()

Не знакомы с асинхронным программированием? Ознакомьтесь с этой статьей на Medium (открывается в новой вкладке).

4. Запустите его в вашем терминале с помощью node

node index.js

5. Теперь вы должны увидеть вывод номера последнего блока в вашей консоли!

The latest block number is 11043912

Ура! Поздравляем! Вы только что написали свой первый скрипт Web3 с использованием Alchemy 🎉

Не знаете, что делать дальше? Попробуйте развернуть свой первый смарт-контракт и попрактиковаться в программировании на Solidity в нашем руководстве по смарт-контракту Hello World или продолжайте изучать документацию Alchemy (открывается в новой вкладке) для получения дополнительных примеров.

Зарегистрируйтесь в Alchemy бесплатно (открывается в новой вкладке), ознакомьтесь с нашей документацией (открывается в новой вкладке) и следите за последними новостями в Twitter (открывается в новой вкладке).