Привет, меня зовут Франческо, и я ежедневно делюсь контентом о Web3 (в основном на Твиттер а также YouTube)

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



Когда начать?

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

Но все мы разные и у нас разные способы обучения.

Эта статья основана на моем личном опыте изучения Web3.



Дорожная карта

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

Не берите дорожную карту как библию, которой можно доверять и слепо следовать на 100%, а как напоминание, если вы на правильном пути.

Есть много дорожных карт, и я работаю над одной.

На данный момент я рекомендую следующее:

Полная дорожная карта развития Web3.0 и Solidity до 2022 г.)
Полная дорожная карта развития Web3.0 и Solidity до 2022 г.



Вступительная статья

А как насчет самой первой части контента?
Я не предлагаю сразу переходить к коду, но возьмемся за руки и начнем с общего представления о том, что такое Web3.

эта статья по Надер даст на свободный кодкемп это хороший, чтобы начать.

Что такое Веб3?  Объяснение децентрализованного Интернета будущего



Основы блокчейна

Начиная с основных понятий, вы не можете ошибаться.

Я свяжу конкретные ресурсы для каждого из них, но не воспринимайте это как единственное, что вам нужно посмотреть, чтобы понять концепции. Не торопитесь, потому что все время, проведенное здесь, ios экономит время позже!

Просто помните, что Основы фундаментальны, поэтому не пропускайте эту часть.

  • Веб1, Веб2, Веб3: хорошая статья о различиях между Web1, Web2 и Web3.
  • Что такое блокчейн: познавательное видео для понимания основ блокчейна.
  • Распределенный реестр: это консенсус реплицированных, совместно используемых и синхронизированных цифровых данных, географически разбросанных по многим сайтам, странам или учреждениям.
  • Основы криптовалют: введение для ознакомления с криптовалютами.
  • Смарт-контракты: смарт-контракты объясняются просто в 4-минутном видео.
  • Крипто-кошельки: Введение в криптокошельки, связанные с концепцией аутентификации в Web3.
  • Обозреватели блоков: Обозреватель блоков — это онлайн-инструмент, который позволяет вам искать в реальном времени и историческую информацию о блокчейне, включая данные, относящиеся к блокам, транзакциям, адресам и т. д.
  • Блокчейн-оракулы: Оракул блокчейна — это служба, которая связывает смарт-контракты с внешним миром, чтобы передавать информацию из (но также и в) мир.
  • Введение в NFT: Объяснение NFT за 4 минуты.
  • Введение в ДАО: DAO или децентрализованная автономная организация — это компания, созданная для работы с помощью кода на блокчейне.
  • Введение в децентрализованное приложение: dApps или децентрализованные приложения — это приложения, работающие с использованием технологии блокчейн.


Выберите блокчейн

Каждый блокчейн — это экосистема со своими плюсами и минусами.

Выберите Блокчейн, чтобы понять концепции и применить их, например, решить использовать Node.js для создания некоторого API.

Я предлагаю выбрать Эфириум по многим причинам, главная из которых заключается в том, что о нем больше материалов в Интернете.

24 блокчейна



Концепции Эфириума

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

Для Эфириума:

  • учетные записи: Аккаунт — это объект с балансом эфира (ETH), который может отправлять транзакции в Ethereum. Учетные записи могут контролироваться пользователем или использоваться как смарт-контракты.
  • Транзакции: Транзакции — это криптографически подписанные инструкции от аккаунтов.
  • Блоки: Блоки — это пакеты транзакций с хешем предыдущего блока в цепочке.
  • Виртуальная машина Ethereum (EVM): EVM позволяет разработчикам создавать смарт-контракты Ethereum.
  • Газ: Газ необходим для сети Ethereum. Именно топливо позволяет ему работать, точно так же, как автомобилю для работы нужен бензин.
  • Узлы и клиенты: Ethereum — это распределенная сеть компьютеров (известных как узлы), на которых работает программное обеспечение, которое может проверять блоки и данные транзакций. Программное приложение, известное как клиент, должно быть запущено на вашем компьютере, чтобы превратить его в узел Ethereum.
  • сети: Сети — это различные среды Ethereum, к которым вы можете получить доступ для разработки, тестирования или использования в производстве.
  • Алгоритмы консенсуса: Механизмы консенсуса позволяют распределенным системам работать вместе и оставаться в безопасности.


Концепции Ethereum (продвинутый уровень)

Если вы хотите погрузиться немного глубже, вот несколько статей и концепций, которые вы можете найти:

  • Белая книга Эфириума: вводный документ по Ethereum, опубликованный в 2013 году перед его запуском.
  • Трилемма Эфириума:
  • EndGame (Виталик Бутерин): Видение Виталика Бутерина правдоподобной дорожной карты для Ethereum.
  • Жёлтая бумага Эфириума: формальное определение протокола Ethereum.
  • Цепь маяка: Beacon Chain — это реестр счетов, который ведет и координирует сеть стейкеров.
  • Сайдчейны: Сайдчейн — это отдельная цепочка блоков, которая работает независимо от Эфириума и связана с основной сетью Эфириума двусторонним мостом.
  • Слияние: Слияние — самое значительное обновление в истории Ethereum. Было проведено обширное тестирование и вознаграждение за ошибки, чтобы обеспечить безопасный переход на Proof-of-Stake.

Это необязательно!



Выберите язык

  • Солидность: подходит для разработчиков JavaScript/C++/Python.
  • Вайпер: хорошо для разработчиков Python.
  • Ржавчина: хороший выбор, если вы выбрали Солану в качестве блокчейна.

Я предлагаю Solidity, потому что он самый популярный.



Solidity (молниеносное вступление)

  • Это объектно-ориентированный язык высокого уровня для реализации смарт-контрактов.
  • Он статически типизирован.
  • Это язык с фигурными скобками, предназначенный для виртуальной машины Ethereum.
  • Он поддерживает: наследование, библиотеки и сложные пользовательские типы.

Вот как выглядит файл Solidity (расширение: .sol)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract HelloWorld {
    string public greet = "Hello World!";
}
Войти в полноэкранный режим

Выйти из полноэкранного режима

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



Видео о солидности

Несколько хороших каналов на YouTube, где можно узнать больше о Solidity:



Инструменты солидности



Используйте фреймворк

Как только вы освоите основы, вы сможете углубиться, используя эти инструменты и работая в локальной среде.

  • Метамаска: MetaMask — это программный криптовалютный кошелек, используемый для взаимодействия с блокчейном Ethereum.
  • Против расширения Code Solidity: расширения VS Code, которые интегрируются с генератором кода Nethereum для создания определений интеграции Contract.
  • Трюфель: Truffle — это среда разработки, конвейер ресурсов и среда тестирования для разработки смарт-контрактов.
  • Сегодня: Hardhat — это среда разработки Ethereum. Скомпилируйте свои контракты и запустите их в сети разработки.
  • Брауни: Brownie — это среда разработки и тестирования смарт-контрактов на основе Python.
  • Литейный завод: Foundry — это быстрый, портативный и модульный инструментарий для разработки приложений Ethereum, написанный на Rust.


Подключите Dapp к внешнему интерфейсу

Вы фронтенд-разработчик? ХОРОШИЙ!

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

Вы можете использовать любой интерфейсный фреймворк (React, Vue, Angular, Svelte…)

Использовать:

  • Web3.js: web3.js — это набор библиотек, которые позволяют вам взаимодействовать с локальным или удаленным узлом ethereum с помощью HTTP, IPC или WebSocket.
  • Эфир.js: Библиотека ethers.js призвана стать полной и компактной библиотекой для взаимодействия с блокчейном Ethereum и его экосистемой.


Децентрализованное хранилище

Вот несколько примеров хранилищ, которые вы можете использовать для хранения своих данных в блокчейне (что-то похожее на базы данных).

  • ИПФС: Межпланетная файловая система — это протокол, гипермедиа и одноранговая сеть обмена файлами для хранения и обмена данными в распределенной файловой системе.
  • Арвайв: Arweave — это протокол хранения данных. Он построен по технологии, называемой «блочное плетение».
  • FileCoin: Filecoin — это публичная криптовалюта и цифровая платежная система с открытым исходным кодом, предназначенная для совместного цифрового хранения и поиска данных на основе блокчейна. Он основан на IPFS и позволяет арендовать неиспользуемое пространство на жестком диске.

Это p2p-сеть пользователей-операторов, которые владеют частью общих данных.



Инструменты среднего уровня

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

  • Инструменты тестирования: вафли, Ганаш
  • OpenZeppelin
  • WalletConnect: WalletConnect — это протокол с открытым исходным кодом для подключения децентрализованных приложений к мобильным кошелькам со сканированием QR-кода или глубокими ссылками.
  • Звено цепи: Chainlink — это децентрализованная сеть оракулов, обеспечивающая защищенные от несанкционированного доступа входы, выходы и вычисления для поддержки расширенных смарт-контрактов в любой цепочке блоков.
  • График: The Graph — это протокол индексации для организации данных блокчейна и обеспечения легкого доступа к ним с помощью GraphQL.


SDK

Получив представление о том, что такое Dapp, и сделав несколько примеров, вы можете решить, что вам нужна поддержка, и не писать все самостоятельно.

Вот 3 хороших, которые вы можете проверить:

import { Alchemy } from 'alchemy-sdk';

// Using default settings - pass in a settings object to specify your API key and network
const alchemy = new Alchemy();

// Access standard Ethers.js JSON-RPC node request
alchemy.core.getBlockNumber().then(console.log);

// Access Alchemy Enhanced API requests
alchemy.core
  .getTokenBalances('0x3f5CE5FBFe3E9af3971dD833D26bA9b5C936f0bE')
  .then(console.log);

// Access the Alchemy NFT API
alchemy.nft.getNftsForOwner('vitalik.eth').then(console.log);

// Access WebSockets and Alchemy-specific WS methods
alchemy.ws.on(
  {
    method: 'alchemy_pendingTransactions'
  },
  res => console.log(res)
);
Войти в полноэкранный режим

Выйти из полноэкранного режима

// my_script.js
import { ThirdwebSDK } from "@thirdweb-dev/sdk";

// instantiate the SDK in read-only mode (our example is running on `polygon` here)
// all major chains and testnets are supported (e.g. `mainnet`, `rinkeby`, `goerli`, 'polygon', 'mumbai', etc.)
const sdk = new ThirdwebSDK("polygon");

// access your deployed contracts
const nftDrop = sdk.getNFTDrop("0x...");
const marketplace = sdk.getMarketplace("0x...");

// Read from your contracts
const claimedNFTs = await nftDrop.getAllClaimed();
const listings = await marketplace.getActiveListings();
Войти в полноэкранный режим

Выйти из полноэкранного режима

  • Моральный SDK: Как подключиться к серверу Moralis с помощью руководства Moralis SDK.

Вот как инициализировать Moralis SDK

import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById("root")
);
Войти в полноэкранный режим

Выйти из полноэкранного режима



Строить проекты

Создавайте проекты! Я оставляю несколько мест, где вы можете черпать вдохновение для создания проектов, но на YouTube их гораздо больше.



Построить публично

Стройте публично!

Это не специфично для Web3, но если вы строите публично, у вас есть некоторые преимущества:

Все, что я делаю, публично:

Вот видео о том, как я следую руководству по LearnWeb3 DAO.
Описание изображения



Присоединяйтесь к сообществу!

И последнее, но не менее важное: присоединение к сообществу может быть очень полезным.

Хорошие примеры:

Если вы являетесь создателем контента, вы также можете присоединяйтесь к 4C, классному сообществу создателей контентасообщество, которое я основал.

У нас есть специальный раздел для Web3.

Если вы все еще читаете, просто оставьте отзыв.



Благодарю вас!

Спасибо за чтение!
Вы можете найти Франческо здесь