How to learn Web3

In this article, I'll summarize the steps you can take to learn Web3.


Where to start?

When we want to start something new, we need some guidance so we don't get stuck at the beginning.

But we are all different, and we learn in different ways.

This post is based on my very personal experience learning Web3.


route map

I don't like roadmaps! But reading at least one can help us understand our expectations and check if we're missing something.

Don't trust the roadmap as a bible and follow it 100% blindly, but it can serve as a reminder if you're on the right track.

There are many roadmaps and I'm working on one.

Now I think the following one is recommended:

Complete Web3.0 and Solidity development roadmap 2022 )


Introductory article

What about the first content?

I don't recommend jumping right into the code, but hold our hands for a while and start with a general idea of ​​what Web3 is.

This freecodecamp post byNader Dabit is a great place to start.


Blockchain Basics

You can't really go wrong starting with the basic concept.

I'll link specific resources for each of them, but don't make them the only ones you have to watch to understand the concept. Take your time because all the time is spent here ios time saver!

Remember, the basics are the basics, so don't skip this part.

  • Web1, Web2, Web3 : Good article on the differences between web1, Web2 and Web3

  • Distributed Ledger : It is a consensus of replicated, shared and synchronized digital data that is geographically distributed among many sites, countries or institutions.

  • Smart Contracts : Smart contracts are briefly explained in a 4 minute video.

  • 加密钱包:加密钱包介绍,与 Web3 中的身份验证概念相关。

  • 区块浏览器:区块浏览器是一种在线工具,可让您搜索有关区块链的实时和历史信息,包括与区块、交易、地址等相关的数据。

  • Blockchain Oracles:区块链 oracle 是一种将智能合约与外部世界连接起来的服务,可以从(也可以)向世界提供信息。

  • DAO 简介:DAO,即去中心化自治组织,是一家通过区块链上的代码运行的公司。

  • Dapp 简介:dApp 或去中心化应用程序是使用区块链技术运行的应用程序。


选择区块链

每个区块链都是一个生态系统,各有利弊。

选择一个区块链来理解概念并应用它们,比如决定使用 Node.js 构建一些 API。

我建议选择以太坊有很多原因,主要是网上有更多关于它的资料。


以太坊概念

选择区块链后,您就可以开始学习特定区块链的基础知识。一些概念在区块链之间重叠,但它们中的每一个都可能略有不同。

对于以太坊:

  • 账户:账户是具有以太 (ETH) 余额的实体,可以在以太坊上发送交易。帐户可以由用户控制或部署为智能合约。

  • 交易:交易是来自账户的加密签名指令。

  • :块是批量交易,其中包含链中前一个块的哈希值。

  • Gas:Gas 对以太坊网络至关重要。它是让它运行的燃料,就像汽车需要汽油才能运行一样。

  • 节点和客户端:以太坊是一个分布式计算机网络(称为节点),运行软件可以验证块和交易数据。该软件应用程序称为客户端,必须在您的计算机上运行才能将其变成以太坊节点。

  • 网络:网络是您可以为开发、测试或生产用例访问的不同以太坊环境。

  • 共识算法:共识机制允许分布式系统协同工作并保持安全。


以太坊概念(高级)

如果您想更深入地研究,可以查看以下一些文章和概念:

  • 信标链:信标链是一个账户分类账,用于管理和协调利益相关者网络。

  • 侧链:侧链是一个独立的区块链,独立于以太坊运行,并通过双向桥连接到以太坊主网。

  • 合并:合并是以太坊历史上最重要的升级。进行了广泛的测试和漏洞奖励,以确保安全过渡到股权证明。

这些是可选的!


选择语言

  • Solidity:适合 JavaScript/C++/Python 开发人员。

  • Vyper:适合 Python 开发人员。

  • Rust:如果你选择 Solana 作为区块链,这是一个不错的选择。

我建议使用 Solidity,因为它是最受欢迎的。


Solidity(快速介绍)

  • 它是一种用于实现智能合约的面向对象的高级语言。

  • 它是静态类型的。

  • 它是一种花括号语言,旨在针对以太坊虚拟机。

  • 它支持:继承、库和复杂的用户定义类型。

这就是 Solidity 文件(扩展名:.sol)的样子

// SPDX-License-Identifier: MIT
pragmasolidity^0.8.13;contractHelloWorld{stringpublicgreet="Hello World!";}

在接下来的部分中,您可以使用一些免费资源来学习和开始使用 solidity 编程语言。


坚固的视频

一些很好的 YouTube 频道,可以了解更多关于 Solidity 的信息:


实体工具

  • Remix IDE : 一个很好的入门,无需设置本地环境)

Solidity备忘单


使用框架

一旦掌握了基础知识,您就可以深入使用这些工具并在本地环境中工作。

  • Metamask:MetaMask 是一种用于与以太坊区块链交互的软件加密货币钱包。

  • Truffle:Truffle 是用于开发智能合约的开发环境、资产管道和测试框架。

  • Hardhat:Hardhat 是一个以太坊开发环境。编译您的合约并在开发网络上运行它们。

  • Brownie : Brownie 是一个基于 Python 的智能合约开发和测试框架。

  • Foundry:Foundry 是一个快速、便携和模块化的工具包,用于以太坊应用程序开发,用 Rust 编写。


将 Dapp 连接到前端

你是前端开发人员吗?好的!

这一次,您无需学习新框架,只需使用一个库即可与区块链交互!

您可以使用任何前端框架(React、Vue、Angular、Svelte...)

使用:

  • Web3.js:web3.js 是一组库,允许您使用 HTTP、IPC 或 WebSocket 与本地或远程以太坊节点进行交互。

  • Ether.js:ethers.js 库旨在成为一个完整而紧凑的库,用于与以太坊区块链及其生态系统进行交互。


去中心化存储

以下是一些可用于将数据存储在区块链(类似于数据库)上的存储示例。

  • IPFS:星际文件系统是一种协议、超媒体和文件共享对等网络,用于在分布式文件系统中存储和共享数据。

  • Arweave:Arweave 是一种数据存储协议。它建立在一种称为“blockweave”的技术之上。

  • FileCoin:Filecoin 是一种开源的公共加密货币和数字支付系统,旨在成为基于区块链的协作数字存储和数据检索方法。它建立在 IPFS 之上,并允许租用未使用的硬盘空间。

它们是持有一部分整体数据的用户运营商的 p2p 网络。


中级工具

他们中的大多数并不复杂。老实说,它们简化了过程,但最好在了解了基础知识后再发现它们。

  • WalletConnect:WalletConnect 是一种开源协议,用于通过二维码扫描或深度链接将去中心化应用程序连接到移动钱包。

  • Chainlink:Chainlink 是一个去中心化的预言机网络,提供防篡改的输入、输出和计算,以支持任何区块链上的高级智能合约。

  • TheGraph: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();
  • Moralis SDK:如何使用 Moralis SDK 指南连接到 Moralis 服务器。

这是初始化 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 特有的东西,但如果你在公共场合构建,对你有一些好处:

  • 您可以更好地理解这些概念。

  • 你有观众。

  • 您与具有相同兴趣的人建立联系。


加入社区!

最后但同样重要的是,加入社区会非常有用。

Guess you like

Origin blog.csdn.net/u010291330/article/details/129086526