如何学习 Web3

2025-05-27

如何学习 Web3

大家好,我是 Francesco,我每天分享有关 Web3 的内容(主要在TwitterYouTube上)

在本文中,我将总结学习 Web3 可以采取的步骤。


从哪里开始?

 
当我们想要开始做新的事情时,我们需要一些方向,以免一开始就陷入困境。

但我们每个人都是不同的,我们有不同的学习方式。

本文基于我学习 Web3 的个人经验。


路线图

 
我不喜欢路线图!但至少读一读路线图能让我们了解自己的预期,并检查是否遗漏了什么。

不要将路线图视为值得信赖和盲目遵循的圣经,而应将其作为您是否走在正确道路上的一个提醒。

有很多路线图,我正在研究其中一张。

现在我觉得推荐以下内容:

完整的 Web3.0 和 Solidity 开发路线图(2022
2022 年完整的 Web3.0 和 Solidity 开发路线图


介绍文章

 
那么最开始的内容呢?
我不建议直接进入代码部分,而是先让我们先了解一下什么是 Web3。

Nader Dabit在freecodecamp发表的这篇文章是一个很好的入门文章。

Web3 是什么?未来去中心化互联网解析


区块链基础知识

 
从基础概念开始你就不会犯错。

我会为每篇文章链接具体的资源,但不要把这当作理解这些概念的唯一参考。慢慢来,因为在这里花的时间都可以用来节省以后的 iOS 时间!

只要记住基础知识是基础,所以不要跳过这一部分。

  • Web1、Web2、Web3:一篇关于 web1、Web2 和 Web3 之间差异的好文章
  • 什么是区块链:一个启发性的视频,帮助您了解区块链的基础知识。
  • 分布式账本:它是地理上分布在许多站点、国家或机构的复制、共享和同步数字数据的共识。
  • 加密货币基础知识:加密货币简介。
  • 智能合约:4 分钟的视频简单解释智能合约。
  • 加密钱包:加密钱包的介绍,与 Web3 中的身份验证概念相关。
  • 区块浏览器:区块浏览器是一种在线工具,可让您搜索有关区块链的实时和历史信息,包括与区块、交易、地址等相关的数据。
  • 区块链预言机:区块链预言机是一种将智能合约与外界连接起来的服务,用于从外部世界(以及向外部世界)提供信息。
  • NFT 简介:4 分钟解释 NFT。
  • DAO 简介:DAO,即去中心化自治组织,是一家通过区块链上的代码运行的公司。
  • Dapp 简介:dApps,即去中心化应用程序,是使用区块链技术运行的应用程序。

选择区块链

 
每个区块链都是一个生态系统,有优点/缺点。

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

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

24个区块链


以太坊概念

 

一旦你选择了区块链,你就可以开始学习该区块链的基础知识。不同区块链之间的一些概念是重叠的,但每个区块链之间也可能略有不同。

对于以太坊:

  • 账户:账户是持有以太币 (ETH) 余额的实体,可以在以太坊上进行交易。账户可以由用户控制,也可以部署为智能合约。
  • 交易:交易是来自账户的加密签名指令。
  • 区块:区块是带有链中前一个区块的哈希值的交易批次。
  • 以太坊虚拟机(EVM):EVM 允许开发人员创建以太坊智能合约。
  • Gas:Gas 对以太坊网络至关重要。它是以太坊网络运行的燃料,就像汽车需要汽油才能行驶一样。
  • 节点和客户端:以太坊是一个由运行软件的计算机(称为节点)组成的分布式网络,这些软件可以验证区块和交易数据。您必须在计算机上运行一个软件应用程序(称为客户端),才能将其转换为以太坊节点。
  • 网络:网络是您可以访问以进行开发、测试或生产用例的不同以太坊环境。
  • 共识算法:共识机制允许分布式系统协同工作并保持安全。

以太坊概念(高级)

 
如果您想深入了解,可以查阅以下一些文章和概念:

  • 以太坊白皮书:以太坊的介绍性论文,于 2013 年以太坊推出之前发布。
  • 以太坊三难困境
  • EndGame(Vitalik Buterin):Vitalik Buterin 对以太坊可行路线图的愿景。
  • 以太坊黄皮书:以太坊协议的正式定义。
  • 信标链:信标链是一个管理并协调权益持有者网络的账本。
  • 侧链:侧链是独立于以太坊运行的独立区块链,通过双向桥连接到以太坊主网。
  • 合并:合并是以太坊历史上最重要的升级。为了确保向权益证明 (PoS) 的安全过渡,我们进行了广泛的测试和漏洞赏金计划。

这些都是可选的!


选择语言

 

  • Solidity:适合 JavaScript/C++/Python 开发人员。
  • Vyper:适合 Python 开发人员。
  • Rust:如果您选择 Solana 作为区块链,那么它是不错的选择。

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


Solidity(极速入门)

 

  • 它是一种面向对象的、用于实现智能合约的高级语言。
  • 它是静态类型的。
  • 它是一种针对以太坊虚拟机设计的花括号语言。
  • 它支持:继承、库和复杂的用户定义类型。

Solidity 文件(扩展名:.sol)如下所示

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

contract HelloWorld {
    string public greet = "Hello World!";
}
Enter fullscreen mode Exit fullscreen mode

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


Solidity 视频

 
一些不错的 YouTube 频道可以帮助您了解有关 Solidity 的更多信息:


Solidity 工具

 


使用框架

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

  • Metamask:MetaMask 是一个用于与以太坊区块链交互的软件加密货币钱包。
  • Vs Code Solidity 扩展:VS Code 扩展与 Nethereum 代码生成器集成以创建合约集成定义。
  • 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 网络,掌握着部分整体数据。


中级工具

 
它们大多数并不复杂。说实话,它们简化了流程,但最好在了解基础知识之后再发现它们。

  • 测试工具:华夫饼甘纳许
  • OpenZeppelin
  • 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)
);
Enter fullscreen mode Exit fullscreen mode
// 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();
Enter fullscreen mode Exit fullscreen mode
  • 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")
);
Enter fullscreen mode Exit fullscreen mode

构建项目

 
建造项目!我留下了一些可以让你获得建造项目灵感的地方,但YouTube上还有更多。


公开建造

 
公开建造!

这不是 Web3 特有的东西,但如果你在公共场合构建,会给你带来一些好处:

  • 您将更好地理解这些概念。
  • 你就拥有了观众。
  • 您可以与有相同兴趣的人建立联系。

我所做的一切都是公开的:
https://github.com/FrancescoXX/free-Web3-resources

这是我按照 LearnWeb3 DAO 教程进行操作的视频
图片描述


加入社区!

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

好的例子:

如果你是一个内容创作者,你也可以加入我创办的酷炫内容创作者社区 4C

我们有一个专门针对 Web3 的部分。

如果您仍在阅读,请留下反馈。


谢谢你!

 
感谢阅读!
你可以在这里找到 Francesco

文章来源:https://dev.to/francescoxx/how-to-learn-web3-september-2022-3h9h
PREV
如何使用 React 和 Tailwind 创建侧边导航栏 让我们来编写代码
NEXT
什么时候是成为开发人员的最佳时机?