2025年,Web3开发学习路线全指南

  • 张小风
  • 发布于 2024-12-05 16:14
  • 阅读 6933

2025年,Web3开发学习路线全指南, 如何从基础一步步学习, 到能否独立开发自己的链上应用(DApp)。

01 前言

Web3 是一个包含了很多领域的概念,不讨论币圈和链圈的划分,Web3 包括有Defi、NFT、Game 等基于区块链的Dapp应用的开发; 还有基于区块链底层架构或者协议的开发。

这篇文章给出的学习路线图是第一种类型:针对Dapp应用的开发,也就是基于区块链网络开发的去中心化应用。

这里有一个更完整的路线图: https://learnblockchain.cn/maps/Roadmap 涉及到了所有主要知识点。

我是从国内的招聘的 JD 结合我自己的学习经验整理的学习路线图,本文不断更新。

10.jpg

也许你会问为什么要学习以太坊?我学习用BNB Chain、Solana、Avalanche等区块链构建我的Dapp不行吗?答案当然可以!但是以太坊、BNB Chain 等众多两,都是 EVM 生态,它的开发者工具最齐全、文档和社区也最丰富。你能找到更多的学习资料,在遇到问题时也能很快找到社区的解答。

毫无疑问,以太坊理应是Dapp的新手开发者第一个学习的区块链生态。

这篇文章不会介绍过多Dapp的前后端开发上,我假设你了解HTML/CSS/JavaScript的相关基础知识,并熟悉一门后端语言(Node.js、 Python、Rust、Go 或者 Java)。

好了,让我们开始吧~

02 企业需要什么样的Web3开发者?

如果了解现在的企业需要Web3开发者拥有什么样的技能组合,能够让我们更加针对性的去学习企业级的开发实践,少踩一些弯路。

很多岗位要求掌握以下区块链技术要点:

区块链基础原理: 熟悉Ethereum技术,深入理解EVM

Solidity编程: 智能合约设计、开发、测试、上线和维护、Gas 优化、 智能合约的跨链交易、OpenZeppelin 等库

开发框架Foundry 、 Hardhat

与合约交互的库:优先使用 viem.sh、Wagmi , 其实是 ethers.js、 web3js、

没错,这几个技术点是我们Dapp开发和编写智能合约通常会使用到的。也许你依然对里面的概念和技术完全不了解,没关系,你只需要有个大概的印象。接下来我们在下文的「学习路线指南」中都会提及到这几个技术栈。

即使你还从未接触过Web3的开发,但如果你是一位有过Web开发经验的程序员,Dapp 的应用开发范式基本是一致的, Solidity 充当了原来的后端程序

03 区块链基础

在学习应用的开发前,了解一定的区块链基础知识是很有必要的。虽然从技术角度上来说,即使你不了解任何的区块链基础知识,也能开发出Dapp。但这样的开发者基本上就是工具和语言的熟练使用者,在遇见较为深入的问题和技术栈时,很快就会碰见天花板。

对于区块链基础知识的学习,我推荐以下的专栏/课程/书籍, 你可以任选一个深入看即可:

推荐资料

1. 北京大学肖臻老师《区块链技术与应用》公开课-B站    (视频 链接

北京大学公开课《区块链技术与应用》由肖臻老师讲授,主要讲解区块链的基本概念和实现原理,面向广大对区块链技术和应用感兴趣的同学。通过这门课的学习,能够掌握比特币、以太坊等区块链技术的设计思路并有效解决实际问题。

2. 麻省理工(MIT) 区块链经典入门课程:区块链与货币   (视频 链接 )

讲师是  Gary Gensler , 麻省理工教授,也是前美国证监会的主席,对区块链如何解决金融问题有深入的理解,这个课看前一部分即可。

3. 登链区块链 101 视频合集 (视频 链接 ) ** 这是一个基础知识的合集,很多视频有动画解释,方便理解,你可以选择你感兴趣的内容。

基础学习到什么程度?

学习基础知识特别容易刨根问底,区块链同时又是涵盖密码学、计算机科学等领域的技术综合体,如果深入了解下去可能会让学习者失去学习的兴趣。那么作为一名区块链开发者,你需要学习到什么程度呢?我个人认为,在学习完基础知识部分后,你需要能够回到出以下的问题即可:

  1. 区块链到底是什么?它具有什么特点?
  2. 区块链在技术上大致是如何实现的?
  3. 区块链的共识机制是什么?共识机制解决了什么问题?有什么常见的共识机制?
  4. 区块链的存储规则和常见的数据库有什么不同?
  5. PoW、PoS 这几个共识机制的原理、特点是什么?
  6. 常见的区块链的应用类型有哪些?

你可以带着这些问题,结合上面推荐的资料学习,这样效果会更好。 看完这个基本能搭建起区块链知识体系的完整认知。

04 了解区块链应用生态

基础知识的学习对于大多数人而言注定是枯燥乏味的,在学习区块链的同时不妨同时了解一下现在国内外有哪些具体的应用。你也许有听过几个应用了,例如:MetaMask(最知名的区块链钱包),Uniswap(一个交易 Token 的Dapp)、 稳定币(USDC / USDT ) 、Axie Infinity(一款神奇宝贝主题的区块链游戏)、NBA TopShot(NBA官方验证的NFT)、OpenSea(全球最大的NFT交易市场)等等。

了解这些基于区块链的Dapp,能够让我们更加直观的认识到区块链的应用场景。还有什么比直接使用到能够交互的应用程序更为直观的呢?在你了解的过程中,你会发现如今区块链生态主要集中在金融领域。另外,你也会发现有很多的Dapp不是在以太坊这一条链上运行的了,还有BNB Chain、SOLONA、TRON等众多公链生态。

你可以通过 https://dappradar.com/ 探索一下Dapp 生态,这个网站可以类比苹果生态中的Apple Store 。

05 以太坊相关技术

了解完区块链的基础知识,这个时候就应该到了技术学习的环节。正如前文中提到的,对于新手开发者而言,学习区块链的最佳方式是从以太坊入手。下面我们就来看一下学习以太坊生态的相关技术栈。

eth.png

以太坊开发者基础 在学习具体的技术前,以太坊的基础知识和概念是需要掌握的。学习这方面的知识,推荐的资料主要是以太坊官网。你基本可以在官网上找到太坊生态所有技术的学习资料!

以太坊开发者文档通俗的介绍了以太坊的相关概念:账户、区块、EVM、Gas、智能合约、共识机制等,

在官方文档的阅读过程中,EVM、Gas、智能合约等部分是需要重点掌握的。

06 Metamask

在以太坊编写智能合约之前,如果你还没有下载一个区块链钱包并尝试完成一笔交易,你可能无法体会到区块链交易的便利性,也不能直观的感受到 Gas 费用的无处不在。在这之前你可以尝试下载安装MetaMask这个区块链钱包来完成一笔交易。

metamask.png

你可以直接在浏览器上安装MetaMask插件,并且切换到相应的测试网络(Sepolia)。如果你在测试网络上没有任何的ETH,你可以 搜索 Eth Sepolia Facuet 从水龙头网站获取以太币。

07 Solidity语言 + 智能合约

智能合约是Dapp开发的最重要的环节,智能合约本质是开发者发布在 EVM 以太坊虚拟机中的可运行的代码片段(程序),它在链上以一个以太坊账户存在。任何人都可以通过“交易”来触发并执行智能合约。

能够编写智能合约的语言有:Solidity、Vyper、Yul等。但Solidity基本是绝大多数开发者和企业用来编写智能合约的唯一语言,所以Solidity是你成为区块链开发者必须学习的一门语言。

你可以从以下资料中学习Solidity:

在学习Solidity和智能合约过程中,你需要一款IED去编写你的代码,初学推荐 Remix 。

Remix 是一款基于浏览器的IDE,使用Remix可以省去你安装Solidity运行环境的繁琐流程。Remix基本提供了你编写Solidity智能合约的所有功能:

  • 代码高亮
  • AI 辅助
  • 代码编译
  • 日志输出
  • 钱包连接&发送交易
  • 合约部署

08 Foundry 开发框架

正如我们编写前端应用会使用到React、Vue这样的前端框架,编写后端Node.js应用会使用Nest.js或者Egg.js后端框架一样。社区里面编写合约开发框架最常使用的框架就 Foundry 。

Foundry具有以下功能:

  • 内置智能合约编译,链接,部署和二进制(文件)管理。*
  • 可快速开发自动化智能合约测试框架。
  • 可脚本化、可扩展的部署和迁移框架。
  • 可管理多个不同的以太坊网络,可部署到任意数量的公共主网和私有网络。
  • 支持通过命令控制台直接与智能合约进行交互。

Foundry 的套件中还提供了一个非常有用的节点应用:Anvil 。通过这个应用你可以一键创建你的区块链网络,方便你在这个区块链网络中开发、部署和测试你的合约。

Foundry 使用,可参考 中文文档 和 这个文章

HardHat同样也是以太坊社区里面使用量比较大的框架, 而早年的 Truffle 基本上不在使用了。

09 DApp 应用开发

Solidity 程序 以合约形势运行在链上,需要有相应的前端去调用合约, 这个时候需要使用到一些交互库:例如 viem.sh 、ethers.js 、 web3.js , 他们用来和以太坊节点通信 。在Dapp的开发中, 你可以通过这两个库来完成一系列的功能:

  • 连接钱包
  • 查询余额
  • 发送交易
  • 部署智能合约
  • 查询区块信息
  • 调用函数

在Dapp的开发中使用这些库的API功能大部分都是相同的,你可以选择其中的一个即可。相对而言,更推荐 viem.sh 、 ethers.js ,接口也更简洁。

相关文档地址如下:

10 ERC-20

如果你的Dapp有创建自己Token(加密货币)的需求,Token 代表着数字资产的所有权、那么ERC-20标准就是你必须了解的,ERC-20 使用以太坊上最重要的智能合约标准之一。是用于实现可替换通证(Token)的智能合约技术标准。

ERC-20 提供的示例功能:

  • 将代币从一个账户转移到另一个账户
  • 获取账户的当前代币余额
  • 获取网络上可用代币的总供应量
  • 批准一个账户的一定数量的代币是否可以被第三方账户消费

ERC-20相关资料:

NFT 非同质化的 Token 标准也需要理解一下,NFT 标准有 ERC721 、ERC1155

11. 智能合约库

在编写较为复杂的智能合约时,你完全没有必要从0到1编写你的智能合约库,社区里面提供了许多的智能合约库供你使用。你完全可以复用这些库或者继承它们。

使用智能合约库不仅仅能节约的时间,社区里面头部的智能合约库的安全性是有保障的,引入它们能够确保你关键交易的安全性。

相关智能合约库资料:

  • OpenZeppelin 合约库:安全的智能合约开发库(最广泛使用的库,必学) , 参考中文文档
  • solady 合约库: 高度 Gas 优化的库 , Github , 其前身是 solmate

    12. DEFI 应用

    DEFI 是 Web3 最重要的应用, 主要有几个方向: LaunchPad、稳定币、DEX(Uniswap) 、借贷(AAVE 和 Compund)、NFT 交易市场(Opensea) 、流动性挖矿。

推荐学习 《How to DEFI》 电子书,在结合相应的代码,在 DEFI 领域, 知名项目的代码都是开源的。

Uniswap V2 经典代码是必须要学的,其他的可参考这个文章: https://learnblockchain.cn/article/19077

13. 智能合约安全

智能合约的安全性怎么强调都不为过。因为智能合约部署后不能修改的特性,这让智能合约中的漏洞变得极为危险。我相信你已经听过了以太坊分叉的故事,也听到过很多盗窃资产的事件发生。

所以,在你把智能合约部署到以太坊主网之前,确保的智能合约的安全性,对其进行测试和安全性分析是非常重要的。同时,了解一些常见的智能合约攻击手段也是必要的,就像你作为一名web开发者需要了解基本的XSS攻击、CSRF攻击等一样。

相关智能合约安全性资料:

  • Slither:用Python 3 编写的 Solidity 静态分析框架
  • MythX:以太坊智能合约的安全分析应用程序接口
  • Mythril:以太坊虚拟机字节码安全分析工具
  • Manticore:在智能合约和二进制文件上使用符号执行工具的命令行界面
  • Verifier:于检查合约是否符合ERC20 标准的验证工具

如果你之前做安全的, 或者安全感兴趣,可以多关注一下安全事件,blockthreat 每个星期都有周报

14. 总结

上面的所有内容学习完成,你就是一名合格的区块链Dapp开发者了。你能够编写安全、规范的智能合约,并且能够将智能合约部署在以太坊网络上,再通过viem 或ethers.js调用的方式,进行智能合约和Dapp的交互,实现整个Dapp的开发打通。

如果你想在区块链开发上更进一步,此时你需要考虑的就会更多了,例如你可能发现链上交易的Gas费用越来越高,此时你需要考虑优化你的智能合约来降低每笔交易的Gas费用。你可能还需要使用到Layer2、多链或者侧链等扩展方案,学习Optimistic Rollups、ZKRollup等扩容工具。这部分内容就不在这篇文章里面介绍了。

Web3 的内容很多, 也是最具有未来潜力的赛道,而机会是给有准备的人。 如果你想加速这个学习过程,推荐登链社区的集训营,两个月的时间线下培训掌握所有的技能,欢迎大家使用的推荐码报名

点赞 3
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
张小风
张小风
0xD305...609D
ETH