Домой Новости С чего начать разработку Web3-приложений?

С чего начать разработку Web3-приложений?

260
0

В конце 2023 года венчурная компания Andreessen Horowitz опубликовала список «больших идей» в криптоиндустрии. Эксперты выделили рестарт UX при создании криптовалютных приложений, а также развитие модульного технологического стека в Web3-разработке polygant.net/ru/fintech-apps/web3-razrabotka/.

Технологический стек Web3-разработчика

Технологический стек ― набор технологий, инструментов и языков программирования для создания ПО. Например, MEAN (MongoDB, Express.js, AngularJS/Angular, Node.js) и MERN (MongoDB, Express.js, React, Node.js) ― популярные стеки веб-разработчиков.

В Web3 можно выделить четыре основных компонента:

  • библиотеки. С их помощью создают приложения, которые работают в блокчейне или обращаются к нему;
  • смарт-контракты. Неизменяемый код, работающий внутри сети;
  • кошельки. Адрес является идентификатором пользователя или смарт-контракта, а также хранилищем криптовалют и токенов;
  • ноды. Хранят копию блокчейна. Без нод Web3-библиотека не сможет взаимодействовать со смарт-контрактами.

Для работы с ними предназначены следующие инструменты:

  • GetBlock ― провайдер, предоставляющий связь с нодами; Remix ― IDE для тестирования, развертывания и исполнения смарт-контрактов в браузере;
  • Hardhat ― локальная среда разработки на Ethereum. Она позволяет развертывать приложения и смарт-контракты в тестнетах Mumbai и Goerli и основной сети Ethereum;
  • MetaMask ― браузерный Web3-кошелек. Разработчики используют его для тестирования и развертывания dapps, пользователи ― для хранения криптоактивов и взаимодействия с Web3;
  • Etherscan ― обозреватель Ethereum, показывающий статус транзакций и детали смарт-контракта.

Для создания Web3-приложений также понадобится знание языков JavaScript и Solidity.

Провайдеры нод

Для обмена данными с блокчейном нужен полный узел, к которому обращается любой криптовалютный сервис. Нода предоставляет данные о транзакциях, блоках, балансах и вписывает произошедшие изменения.

Например, чтобы Алиса отправила Бобу 1 ETH, кошелек должен проверить, сколько денег у обоих до отправки, удостовериться в авторизации транзакции Алисой и валидности кошелька Боба, а потом «сказать» блокчейну, что балансы изменились.

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

Это довольно трудоемкий процесс, требующий постоянной поддержки работоспособности инфраструктуры (мониторинг, установка, обновление). Поэтому часто Web3-разработчики обращаются к провайдерам RPC-нод. Последние предоставляют доступ к узлу через API. Адрес ноды (URL эндпоинта) вписывается в код приложения, которое и шлет на нее запросы.

Начинающим Web3-разработчикам GetBlock предлагает бесплатный доступ с лимитом в 40 000 запросов в сутки. Цены на платные тарифы начинаются с $29.

Web3-библиотеки

Библиотеки ― это наборы готовых функций, повышающие скорость разработки децентрализованных приложений. Их основная задача ― обеспечить взаимодействие со смарт-контрактами, развернутыми в Ethereum или других сетях. Большинство разработчиков для этих целей выбирают Web3.js и Ethers.js.

Web3.js ― популярная библиотека для работы с Ethereum, созданная в 2015 году. Многие проекты используют ее для подключения смарт-контрактов к внешнему коду на JavaScript, выполнения транзакций и получения данных о блокчейне.

Библиотека состоит из нескольких модулей:

  • eth ― помогает установить соединение с тестнетами и мейннетом Ethereum, управлять транзакциями, конструировать контракты Solidity и взаимодействовать с ними;
  • shh ― выполняет обмен информацией между dapps;
  • utils ― форматирует и конвертирует данные;
  • bzz ― позволяет использовать Swarm в качестве децентрализованной системы хранения данных.

Библиотеку можно загрузить с помощью менеджера пакетов вроде NPM или YARN, а затем интегрировать в различные консоли.

Ethers.js ― альтернатива Web3.js, выпущенная в 2016 году разработчиком Ричардом Муром. Она предлагает схожий набор функций, но может похвастаться дополнительными возможностями. Среди них:

  • встроенная поддержка системы доменных имен Ethereum Name Service;
  • лицензия MIT позволяет повторно использовать и перерабатывать код практически без ограничений;
  • небольшой размер пакетов предотвращает негативное влияние на производительность фронтенда;
  • использование языка TypeScript повышает безопасность и минимизирует вероятность ошибок и багов.

Библиотека регулярно обновляется и имеет процесс установки, аналогичный Web3.js. Однако, в отличие от последней, Ethers.js не требует полной загрузки пакетов. Это может быть полезно, если вы собираетесь использовать только отдельные модули.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь