Важнейшие инструменты и технологии для разработки под Web 3.0

Web 3.0  —  это очередной шаг в развитии интернета. В противоположность Web 1.0, который состоял преимущественно из статических веб-страниц, и Web 2.0, привнесшего во всемирную сеть большую динамику и технологические доработки, Web 3.0 основывается на децентрализованных сетях, построенных на базе блокчейна.

Децентрализованная архитектура приложения

На разработчиков для Web 3.0 большой спрос, поскольку сейчас в этой области экспертов еще мало. Так что, если вы являетесь опытным инженером Web 2.0 и хотите войти в эту новую сферу, то наверняка задумаетесь, с чего бы начать. Какие фундаментальные инструменты, концепции и технологии необходимо освоить? 

В этой статье вы познакомитесь с Web 3.0, узнаете о его важных особенностях и отличиях от Web 2.0, а также о том, какими техническими решениями нужно уметь оперировать для вхождения в эту сферу разработки.

Web 3.0 

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

У Web 3.0 есть пять ключевых особенностей:

  • децентрализация;
  • блокчейн;
  • безопасность;
  • масштабируемость;
  • конфиденциальность.

В децентрализованном мире Web 3.0 технология блокчейна и прочие протоколы фундаментально меняют принцип хранения, распространения и использования данных, обеспечивая при этом нативный уровень транзакций. К популярным случаям применения этой парадигмы относится децентрализация финансовых потоков (DeFi и криптовалюты), голосование через децентрализованную организацию, известную как DAO, и нефункциональные токены (NFT), служащие в качестве подтверждения права владения.

Это может прозвучать цинично, но основная мотивация к развитию концепции Web 3.0 обусловлена постепенной утратой взаимного доверия между пользователями, компаниями и правительствами.

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

Если говорить о приложении для голосования, то его создание на базе блокчейна способно обеспечить полную прозрачность предоставленной голосующими информации и возможность ее проверки любым человеком. Именно это и определяет концепцию Web 3.0 как “исключающую элемент доверия”, поскольку эта технология является прозрачной и криптографически защищенной, а значит нет нужды в слепой вере властным и коммерческим структурам.

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

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

Здесь важно отметить, что Web 3.0 не является заменой для Web 2.0, также как Web 2.0 не заменял Web 1.0. В интернете по-прежнему есть место для статических веб-сайтов, которые являлись характерной чертой начального этапа становления всемирной сети Web 1.0. Даже при росте популярности и распространенности Web 3.0 в интернете все равно останется место и для Web 2.0.

Децентрализованные приложения (Dapps)

Теперь у вас есть общее представление о том, что такое Web 3.0, и почему в нем важен принцип децентрализации. Но как конкретно выглядят приложения Web 3.0?

Что ж, выглядят они также, как приложения для Web 2.0. Децентрализованные приложения, еще называемые “dapps” и “dApps”, состоят из фронтенда (UI), взаимодействующего со “смарт-контрактом” (небольшой программой), развернутой в блокчейне. Этот фронтенд также может взаимодействовать с кошельком пользователя при проведении транзакций или записывании данных в блокчейн. 

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

Децентрализованная архитектура приложения

Технологии в основе работы с Web 3.0

Как же создается децентрализованное приложение? Хорошие новости в том, что начать тут можно на базе уже имеющихся навыков программирования. Мы уже поняли, что dapp является фронтендом, значит вам потребуется знать HTML, CSS и JavaScript. Если только вы не соберетесь писать приложения на ванильном JS, то вам, пожалуй, также надо будет освоить такие фреймворки, как Angular, React и Vue. Все это, конечно, здорово для фронтенд-разработчиков, которые хорошо с этими вещами знакомы. Но на этом еще не все.

Ниже мы разберем некоторые языки, инструменты и фреймворки, которые потребуется изучить конкретно для Web 3.0.

Solidity  —  язык, используемый для написания смарт-контрактов, выполняющихся в блокчейне Ethereum. Он напоминает смесь С++, Python и JavaScript. Если вы уже успели освоить несколько языков программирования, то знаете, что каждый очередной дается легче. Поскольку большинство смарт-контрактов подразумевают некий финансовый обмен, то здесь будет очень важным следовать определенным стандартам и передовым методам обеспечения безопасности.

Truffle  —  это фреймворк, который помогает писать, тестировать и развертывать смарт-контракты. На сайте разработчики описывают его как “среду разработки, фреймворк для тестирования и конвейер обработки активов блокчейна, использующий Ethereum Virtual Machine (EVM)”. Аналогично тому, как React помогает писать приложения на JS, Truffle помогает со смарт-контрактами.

Использовать его не обязательно, но этот фреймворк очень поможет за счет абстрагирования ряда сложных деталей реализации. Для тех, кто пользуется VS Code, дополнительно упростит жизнь расширение Truffle для VS Code.

Ganache  —  это персональный блокчейн для локальной разработки и тестирования смарт-контрактов. Он позволяет программистам создавать локальный экземпляр блокчейна Ethereum буквально несколькими простыми командами. По аналогии с тем, как вы разрабатываете приложение Web 2.0 на локальном хосте или в тестовой среде, а не в продакшене, Ganache позволяет делать то же самое при разработке для Web 3.0.

Web3.js  —  это JS-библиотека, используемая для взаимодействия с Ethereum. Она задействуется во фронтенд-приложении для выполнения таких действий, как подключение к кошельку пользователя, предоставление доступа к смарт-контракту и вызов для этого смарт-контракта функций. Доступ к смарт-контрактам может осуществляться через командную строку или UI, и web3.js позволяет делать это именно через UI.

MetaMask  —  это кошелек Web 3.0, который можно использовать через его браузерное расширение или мобильное приложение. Выше уже говорилось о кошельках, но конкретного их описания не давалось. Кошелек в блокчейне предоставляет интерфейс для доступа к вашим цифровым финансовым активам. Его содержимое вы защищаете с помощью закрытого ключа, который известен только вам. Пользователям MetaMask предоставляет безопасный способ подключения к блокчейн-приложениям и взаимодействия с ними из кошельков. Для разработчиков же кошельки нужны, чтобы развертывать смарт-контракты и работать с ними. Обычно для этого нужно добавлять в код закрытые ключи, но Truffle Dashboard позволяет подключать кошелек MetaMask к вашему проекту, не раскрывая ключей.

Infura  —  это провайдер инфраструктуры для подключения к Ethereum и прочим блокчейнам, а также к децентрализованным сетям хранилищ, таким как IPFS. Если не вдаваться в детали, то любые взаимодействия с блокчейном требуют доступа к узлу через JSON-RPC или Websocket. Infura предоставляет для этого инфраструктуру, избавляя вас от необходимости создавать на своей машине собственный узел. Этот сервис также может выступать в качестве подстраховки на случай, если вы все же решите запустить собственный узел. Кроме того, Infura предоставляет пакет инструментов разработки и прочие возможности для создания приложений. Это дополнительная абстракция поверх некоторых из уже рассмотренных технологий, которая сделает разработку под Web 3.0 еще проще.

Уже не терпится углубиться в изучение описанных инструментов? Теперь, будучи знакомыми с общими чертами каждого из них, вы вполне готовы начать писать свое первое приложение под Web 3.0. В сети существует немало уроков на эту тему, и все они так или иначе опираются на большинство из этих технологий. В качестве подспорья для начинающих команда ConsenSys предлагает десятки “Truffle Boxes”, представляющие собой шаблоны, которые можно использовать для начала своего первого проекта. Если же вы дружите с английским и ищете организованный способ вступление в ряды разработчиков для Web 3.0, то рекомендую вам сайт ConsenSys Academy.

Заключение

Web 3.0  —  это очередной этап развития интернета, который поддерживает новейшее поколение программного обеспечения. Блокчейн является наиболее прозрачной технологией, которая уже стала мейнстримом не только среди рядовых потребителей, но и среди серьезных социальных и бизнес-структур.

Понимание и освоение этой технологии разработки даст вам однозначное преимущество для вхождения на этот рынок труда.

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

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Tyler Hawkins: The Essential Web3 Tools and Technologies Developers Must Know

Предыдущая статьяКак настроить внешний вид Visual Studio Code
Следующая статьяШаблон проектирования “Цепочка ответственности” в TypeScript