Руководство для начинающих по навигации в запутанном мире web3
Все говорят о web 3.0, и в это пространство вливаются сумасшедшие деньги. Средний разработчик блокчейна зарабатывает 140 тысяч долларов в год. Попасть в эту отрасль — лучшее, что вы можете сделать как разработчик!
Поскольку индустрия Web 3.0 относительно новая, ресурсов не так много, и многие из них не обновляются. Я составил список лучших ресурсов и руководств, чтобы создать идеальную дорожную карту для изучения Web3 и Solidity.
Основы блокчейна
Первое, что вам нужно понять, чтобы стать разработчиком web3, — это блокчейн. Это поможет вам легко разработать и оптимизировать смарт-контракты (мы поговорим об этом позже). Давайте посмотрим, что такое блокчейн и как он работает.
Блокчейн — это неизменяемая, общедоступная и децентрализованная база данных, принадлежащая пользователям. Данные хранятся в виде блоков, отсюда и название «Блокчейн». Чтобы связать блоки вместе, каждый блок содержит свои данные, свой хэш и хеш предыдущего блока.
Хэш — это уникальная строка, вычисляемая на основе данных. Хэш меняется в зависимости от информации. Возможно, вы сталкивались с этим при реализации токенов JWT в NodeJS.
Если кто-то вмешивается в один из блоков, хеш изменяется, а следующие блоки становятся недействительными, поскольку цепочка разорвана. Затем человеку придется пересчитывать все блоки в цепочке, что займет очень много времени (10 минут на блок).
Копии блокчейнов хранятся на компьютерах по всему миру, называемых узлами. Таким образом, вам также потребуется доступ к большинству компьютеров, и повторите этот процесс. Для компьютера практически невозможно сделать все это достаточно быстро, чтобы сеть не заметила и не попыталась выкинуть мошенника из блокчейна.
Децентрализованные приложения
DApps или децентрализованные приложения — это приложения, построенные поверх блокчейна. Основные технологии, используемые в DApps:
- Внешний интерфейс: JavaScript-фреймворки, такие как React, Vue, Angular.
- Бэкенд: Rust и Solana или Solidity и Ethereum
Теперь вы можете подумать, какие примеры использования DApps? Вот несколько отраслей, в которых DApps могут произвести революцию:
- Escrow — Всякий раз, когда вы покупаете/продаете дом, вам нужно доверять покупателю, чтобы он заплатил вовремя, или хранить деньги у сторонней компании. Что, если покупатель не заплатит или третья сторона сбежит с деньгами? DApps могут обеспечить безопасный перевод денег
- Записи — когда что-то добавляется в блокчейн, его нельзя редактировать или удалить. Это очень удобно при ведении домашних записей, медицинских карт и т. д.
- Платежи. Криптовалюты можно использовать для простых и безопасных платежей для передачи стоимости. Хотя плата за газ сейчас довольно высока, я уверен, что в будущем она снизится.
Основы фронтенд-веб-разработки
Как я упоминал ранее, DApps может иметь технологию блокчейна, обеспечивающую работу бэкэнда, но внешний интерфейс — это JavaScript. Вот чему вам нужно научиться:
- HTML — общие теги HTML
- CSS — основные свойства, Flex, сетка
- CSS Frameworks [необязательно] — Bootstrap, Semantic UI, Tailwind и т. д.
- JavaScript — переменные, функции, классы, ES6 и т. д.
- Фреймворки JavaScript [рекомендуется] — React/Vue/Angular
Я также рекомендую изучить бэкэнд web2 в качестве запасного варианта на случай, если web3 не сработает. Вот что вы должны изучить для бэкэнда:
- Основы NodeJS — Цикл событий, ввод-вывод
- API-фреймворк — экспресс
- Базы данных — MongoDB, SQL, PostgreSQL
Ethereum — это блокчейн, который обрабатывает смарт-контракты. Ethereum, безусловно, является самым популярным блокчейном для создания смарт-контрактов в 2022 году. Solidity — это язык, используемый для разработки смарт-контрактов. Официальная документация — отличное место, чтобы начать узнавать больше об Ethereum: ethereum.org/ru/developers/docs/
Смарт-контракты
Смарт-контракты — это неизменяемый код в блокчейне, который выполняет контракт. Смарт-контракты похожи на классы в JavaScript. Они используются для питания DApps.
Простого понимания концепции смарт-контрактов недостаточно, вы также должны уметь их разрабатывать. Вот где появляется Solidity. Solidity — это объектно-ориентированный язык программирования высокого уровня, который создан специально для простого создания смарт-контрактов.
Однако, поскольку Solidity очень нов, ресурсов для его изучения очень мало. Лучший способ учиться — создавать проекты и решать проблемы, с которыми вы сталкиваетесь, обращаясь к документации. Давайте посмотрим на некоторые ресурсы, которые следуют аналогичному шаблону.
Место для сборки
Buildspace — это платформа группового обучения и один из лучших ресурсов для изучения Web3. Вы можете создавать DApps, коллекции NFT, браузерные игры NFT, DAO и многое другое с помощью Solana, Polygon и Ethereum.
Вы также получаете бесплатный NFT по завершении проекта, что очень круто! Вы получаете доступ к их эксклюзивным доскам объявлений о вакансиях, откуда нанимаются крупнейшие компании Web3. buildspace.so
Изучите Web3DAO
Learn Web3 DAO — еще один замечательный ресурс для Web3. Он имеет 4 разных трека — Freshman, Sophomore, Junior, Senior для разработчиков с разным уровнем подготовки. Вы научитесь создавать DApps, коллекции NFT, токены ICO, DAO, протоколы DeFi и многое другое.
CryptoZombies
Вам нравятся Игры? Вам это понравится. CrytoZombies — это игровой курс по программированию, в котором вы строите фабрику зомби, используя смарт-контракты. Вы должны учиться на одном из других ресурсов и практиковать свои навыки, используя CrytoZombies.
Свяжите свой смарт-контракт с интерфейсом
Теперь, когда вы знаете, как разрабатывать смарт-контракты, вам нужно их использовать. Для этого есть две основные библиотеки — web3.js или ethers.js. Давайте посмотрим, почему ethers.js лучше, чем web3:
- Гораздо меньший размер
- Меньше ошибок
- Лучшая документация
- Более популярным
- Легче для начинающих
- Дополнительные возможности
Вот отличный туториал по ethers.js:
Я также предлагаю изучить web3.js, так как некоторые кодовые базы могут его использовать. Вот ускоренный курс по web3.js:
Alchemy
Alchemy — это набор инструментов для разработчиков, позволяющий быстрее создавать прототипы, отлаживать и выпускать продукты. Alchemy поддерживает различные цепочки, такие как Ethereum, Polygon, Starknet, Flow и другие. Он имеет потрясающий API NFT, который позволяет вам легко настроить и запустить свою коллекцию NFT. Он также поддерживает push-уведомления web3.0, а также имеет улучшенный API-интерфейс блокчейна!
Remix
Remix — это браузерная IDE, специально созданная для создания смарт-контрактов Ethereum с использованием Solidity. Настройка не требуется, вы можете сразу начать писать свой код.
Он компилирует ваш код и помогает вам легко его протестировать. Мало того, вы также можете легко развернуть свой смарт-контракт.
Hardhat
Хотя Remix великолепен, иногда его недостаточно, и я скучаю по настройке VS Code со всеми моими 42 расширениями. Вам понадобится локальная среда Ethereum, если вы используете VS Code. Вот где HardHat вступает в игру.
Hardhat помогает легко развертывать контракты, запускать тесты и отлаживать код Solidity. Вы можете развернуть свой контракт в различных сетях, таких как Ropsten, Rinkeby, Mainnet и т. д. О, и он также поддерживает TypeScript 🤩
Вот учебник по HardHat: