2024年 Web3开发学习路线全指南
Web3概念涵盖多种新兴技术与应用场景,并不涉及币圈与链圈的具体划分。它主要涵盖基于区块链技术实现的各种DApp开发项目;同时发展了VR与AR等注重沉浸式体验的技术方向;此外还包括基于区块链底层架构或协议本身的应用开发
本文提供了一个学习路线图的第一种类型:基于区块链网络开发的应用 是去中心化的DApp构建基础。我的学习路径将首先聚焦于国内JD平台的技术架构探索,并深入分析当前中国区块链企业在技术栈方面的需求。然后提供一个以太坊生态系统的实践指南。
也许你会好奇:为什么要选择学习以太坊?如果我不使用BNB Chain、Solana或Avalanche等其他区块链技术来构建我的Dapp是否可行?然而,在区块链开发生态中,以太坊仍然是目前应用最为广泛的核心平台。当然你可以探索更多资源但是在遇到技术难题时也能迅速获得 community的支持和解答。
毫无疑问,以太坊理应是Dapp的新手开发者第一个学习的区块链生态 。
本文旨在避免对Dapp前端和后端开发内容进行深入探讨。文中假设读者已掌握HTML/CSS/JavaScript基础,并对至少一门后端编程语言如Python、Java、Rush、Go或Node.js有一定了解。
好了,让我们开始吧~
企业需要什么样的Web3开发者?
如果认识当前企业所需具备的专业技能集合,并有助于我们有针对性地培养Web3开发人才所需的实践能力,则能够减少在实际工作中陷入误区的风险。
需要掌握的区块链技术要点:
区块链基础原理
熟悉Ethereum技术,深入理解EVM
Solidity编程
智能合约设计、开发、测试、上线和维护
智能合约的跨链交易
Truffle开发框架
web3js、ethers.js、OpenZeppelin等库
即使你从未接触过Web3领域的开发工作,但如果是一名拥有Web开发经验的程序员的话,Dapp的应用开发模式基本上是相通的.我坚信通过这份职位描述(JD),你大致能够提炼出以下几个关键点.
区块链的基础原理和Ethereum技术是Web3开发的基础知识
智能合约是区块链开发一个很重要的环节
Solidity是编写智能合约的一个重要语言
Truflle是一个主流的区块链开发框架
web3js、ethers.js、OpenZeppelin这几个是区块链开发中经常使用的库

毫无疑问,在Dapp开发以及编写智能合约的过程中,我们经常涉及以下几个关键的技术点:区块链协议的理解、智能合约语言的选择(如Solidity)、以及相关的去中心化网络知识等。或许你对于其中的概念和技术还存在诸多疑问?无需担心,请确保你对这些领域有一个基本的认识。在后续的内容中,《学习路线指南》一文中也会详细介绍这些关键技术框架。
我相信你在阅读完全文后再回来看这个JD,应该会有不一样的理解。
区块链基础
在学习应用开发之前了解一定的区块链基础知识是很有必要的。虽然从技术角度来看即使你不了解任何区块链基础知识也能开发出Dapp。这类开发者通常都是具备熟练掌握相关工具和技术的人并且在遇到较为深入的技术问题或技术栈时很快就会碰到天花板
推荐资料
为了掌握区块链基础知识,请问您想了解哪些方面的内容?
国内知名开源项目Metaverse元界
《自游:说透区块链》(系列)
该专栏由具有丰富一线经验的专业区块链学者担任编写。本专栏将从应用与技术两个维度进行介绍。相较于前一期的内容,在整体结构上更为清晰明了。其中包含了大量具有代表性的案例以及深入的分析与探讨。通过阅读这个系列内容,读者基本上能够建立起对区块链领域的系统性的认识。
https://www.bilibili.com/video/BV1Vt411X7JF " blocking 北京大学肖臻老师的《区块链技术与应用》公开课 - B 站"
北京大学公开课《区块链技术与应用》由肖老师主讲,系统阐述了区块链的基本概念与运行机制,针对广大对区块链技术和应用感兴趣的学者及从业者进行授课。通过学习这门课程,能够掌握比特币、以太坊等几种常见的区块链技术的基本框架并切实解决实际问题中的各种挑战。
《区块链作为数字货币的延伸产品,在推动信用社会建设方面发挥了重要作用》(书籍)
该书的主要作者是巴比特公司的创始人长铗先生。该书系统地阐述了区块链的发展历史及其当前状况,并设有专门章节详细讲解智能合约的应用场景。是一部学习区块链基础理论的优秀教材。
基础学习到什么程度?
基于我对知识体系的理解而言, 学习基础概念并非易事, 但若要深入探究这一领域, 则需要付出额外的努力。区块链作为一个融合了密码学、计算机科学等多个交叉学科的技术体系, 如果想全面掌握其精髓, 可能会令一些追求兴趣深度的学习者望而却步。因此, 如果你旨在成为一位专业的区块链开发者, 那么你需要具备哪些能力呢?我的观点是: 在彻底理解基础知识之后, 你应当能够熟练回答以下相关问题即可:
区块链到底是什么?它具有什么特点?
区块链在技术上大致是如何实现的?
区块链系统中所采用的共识机制具体是什么?该机制的主要作用体现在哪里?有哪些典型的区块链共识机制?
区块链的存储规则和常见的数据库有什么不同?
PoW、PoS、DPoS这几个共识机制的原理、特点是什么?
除了数字货币,常见的区块链的应用类型有哪些?
你可以带着这些问题,结合上面推荐的资料学习,这样效果会更好。
了解区块应用生态
基础知识的学习毫无疑问会让人感到枯燥乏味。在学习区块链的同时,请不妨一并了解一下现在国内外有哪些具体的应用。你也许已经听说过几个吧?例如:备受瞩目的区块链钱包工具 MetaMask(https://metamask.io/ "MetaMask"),提供鞋款购买与交易功能的 Stepn(https://stepn.com/ "Stepn"),以《神奇宝贝》IP为核心设计的独特区块链游戏体验 Axie Infinity(https://axieinfinity.com/ "Axie Infinity"),官方认可的NFT展示平台 NBA TopShot(https://nbas topshot.com/ "NBA TopShot"),以及全球领先的NFT交易市场 OpenSea(https://opensea.io/ "OpenSea")等
认识这些基于区块链技术开发的应用(Dapp),会让我们更容易地认识到区块链的实际应用场景。
有什么比直接使用交互式应用更为直观呢?
在探索的过程中我们会发现如今区块链生态已经非常繁荣,
目前已有相当多Dapp不在以太坊主链上,
此外还发现了众多公链生态系统如BNB Chain SOLANA和TRON等。
这里向各位开发者推荐一个值得深入研究的Dapp生态系统探索平台—— dappradar.com 。该网站在功能设计上借鉴了苹果App Store的理念,并将其扩展至Web3领域。实际上 , dappradar.com 可以说成类似于Web3世界的苹果应用商店 。该平台不仅提供丰富的应用展示 ,还包含大量优质的文章内容以及专业的区块链调研资料 。
以太坊相关技术
掌握了区块链的基本概念之后,在这个时候应该就已经进入了技术深化阶段。
如前所述,在新手开发者群体中,
学习区块链的最佳实践路径是从以太坊这个主流平台入手。
具体来说,请跟随我们深入探索以太坊生态系统相关的技术和架构体系。
以太坊开发者基础
在深入学习相关技术之前,在线性代数中矩阵的基本运算是需要掌握的核心知识点之一
该文档采用通俗易懂的语言详细阐述了以太坊的核心要素包括账户区块EVMGas智能合约共识机制等关键概念。此外该技术在国际化方面表现卓越支持46种语言版本其翻译工作由社区成员负责维护。
在官方文档的阅读过程中,EVM、Gas、智能合约等部分是需要重点掌握的 。
Metamask
编写以太坊智能合约之前
为了方便使用,在浏览器中可以直接安装MetaMask插件,并将设置调整至对应的测试网络位置。如果你在测试网络中发现没有存储 ETH ,可以在 Facuet 网站下载相应版本的 ETH (这些 ETH 都基于 Rinkeby 测试网络)
●Sepolia Faucet - Get Testnet Tokens(Rinkeby测试网络)
● _https://www.rinkeby.io/#faucet_(Rinkeby测试网络)
●https://faucet.metamask.io/ (Facuet测试网络)
Solidity语言 + 智能合约
在Dapp开发中占据关键地位的是智能合约,在EVM虚拟内存空间中被开发者发布为可重用的功能模块(程序),它同时作为EVM环境中运行的功能模块存在。任何开发者都可以通过发起并运行交互操作来触发和执行相应的功能模块。
多种编程语言可用于编写智能合约,并包含Solidity、Vyper和Yul等多种选项。然而,在区块链开发领域中,Solidity基本上是所有开发者和企业使用的主流编程语言之一
你可以从以下资料中学习Solidity:
● Solidity官方文档
官方中文文档-加入区块链社区
基于Ethereum平台的智能合约开发课程 - 千峰教育
Solidity-workshop - Github
Solidity-workshop - Github
●#1 Solidity Tutorial & Ethereum Blockchain Programming Course | CryptoZombies(一个在线游戏来学习语言和Dapp)
在学习Solidity和智能合约时,建议您使用IED工具撰写Solidity智能合约代码。现推荐使用Remix(https://remix.ethereum.org/)进行开发工作。
Remix是一款运行于浏览器界面的集成开发环境(IDE)。通过Remix平台,你可以无需自行搭建Solidity开发环境而直接开始开发。Remix集成了编写Solidity智能合约所需的核心功能:
●代码高亮
●代码调试
●代码编译
●日志输出
●钱包连接&发送交易
●合约部署
web3.js & ethers.js
web3.js与ethers.js是两个专为开发者设计的JavaScript工具包,在区块链应用开发中发挥着重要作用。掌握这些工具后,则能实现一系列的应用功能。
注:该改写版本遵循以下原则:
- 保留了原文的所有链接和技术术语
- 通过替换词汇(如"工具"替代"库")、调整句式(如将主动语态转换为主动语态)实现了表达方式的变化
- 增加了对技术背景的理解描述
- 使整体表述更加专业规范
●连接钱包
●查询余额
●发送交易
●部署智能合约
●查询区块信息
●调用函数
在构建Dapp的过程中使用两个库的API功能大部分都是相同的。你可以选择其中一个即可。相比web3.js,在使用Ethers.js时代码量更少且接口更简洁。个人推荐优先使用Ethers.js。
相关文档地址如下:
官方指南:[web3.js中文文档](https://learnblockchain.cn/docs/web3.js/ "web3.js官方中文指南")
Truffle框架
在开发前端应用时,我们会采用React和Vue等主流前端框架;同样地,在构建Node.js应用程序时
Truffle具有以下功能:
●内置智能合约编译,链接,部署和二进制(文件)管理。
●可快速开发自动化智能合约测试框架。
●可脚本化、可扩展的部署和迁移框架。
该系统支持管理多种不同的以太坊生态系统,并可在任意数量的公共主网和私有网络上部署。
●遵循 ERC190 标准,在采用EthPM 和 NPM 进行包管理的过程中。
●支持通过命令控制台直接与智能合约进行交互。
●可配置的构建管道,支持紧密集成。
●支持在Truffle环境中使用外部脚本器执行脚本。
相关资料如下:
●Truffle中文文档(该文档已经比较久没有更新了,建议查看官网)
Truffle的包中包含一个功能强大的应用:Ganache。利用该应用可以一键创建你的区块链网络,并在该区块链网络中进行开发、部署及测试你的Dapp。
HardHat同样也是以太坊生态系统中应用较为广泛的框架之一,在前端开发者群体中类似于国内前端开发者之间的Vue与React的竞争关系,在以太坊社区中也常用于将该框架与其竞争对手Truffle进行功能对比研究或性能评估。建议将此框架作为学习Truffle的有效替代方案之一,并根据个人项目需求选择最适合的开发工具进行构建开发工作
如果您希望进一步探索以太坊生态系统中的各种框架和工具,请访问以下链接:去中心化应用程序开发框架 | ethereum.org
ERC-20
如果你的Dapp希望自行发行加密货币,则必须深入了解该标准。它代表了以太坊上最核心的智能合约技术之一,并专门用于实现可互换代币的技术规范。
ERC-20 提供的示例功能:
●将代币从一个账户转移到另一个账户
●获取账户的当前代币余额
●获取网络上可用代币的总供应量
●批准一个账户的一定数量的代币是否可以被第三方账户消费
ERC-20相关资料:
访问以太坊官网上的ERC-20代币标准文档
深入认识 ERC-20 代币智能合约
智能合约库
在开发较为复杂的智能合约时,请不要从零开始构建你的智能合约库。社区已经提供了丰富的资源可供使用。你可以灵活地利用这些资源进行开发
采用智能合约库不仅能够节省时间,在社区中头部提供的智能合约库安全性有保障,引入这些库可确保关键交易的安全。
相关智能合约库资料:
[OpenZeppelin 合约](https://docs.openzeppelin.com/contracts/4.x/"OpenZeppelin 合约"):可靠的智能合约开发平台(最受欢迎的开发库)
注
●HQ20:包含一套完整的合约系统、Solidity库以及案例库的项目旨在帮助您构建可靠且功能齐全的分布式应用。
● 以太坊官网-智能合约库
智能合约安全
无论怎样强调都不足以忽视的是智能合约的安全性。由于其不可修改的特性限制了其漏洞的有效利用空间。我也相信您已经耳闻目睹了以太坊分叉事件及其伴随的各种盗窃资产事件。
在部署智能合约至以太坊主网之前,请确保其具备良好的安全性和稳定性,并对其进行全面的功能测试和安全评估是必要步骤。此外,请熟悉常见的恶意行为模式对于防范风险至关重要。与此同时,请确保系统能够识别并防御诸如跨站脚本漏洞以及跨站请求伪造等典型恶意行为
相关智能合约安全性资料:
● Slither:这是一个用Python 3开发的Solidity静态分析工具
●MythX:以太坊智能合约的安全分析应用程序接口
Mythril
该工具基于智能合约和二进制文件提供符号执行功能的命令行界面
●Verifier:旨在专为检查合约是否符合ERC20 标准而设计的验证平台
●其GitHub仓库地址分别为Slither及其功能介绍页面为http://slither.dev;其GitHub仓库地址分别为Mythril及其功能介绍页面为http://mythril.dev:智能合约分析工具
总结
上面的所有内容学习完成之后, 你便成为了一名合格的区块链Dapp开发者. 你可以开发符合标准的安全智能合约, 并将其部署于以太坊网络之上. 同时, 你还能利用web3.js或ethers.js进行交互, 实现对整个Dapp系统功能模块的全面覆盖与整合.

如果你希望在区块链开发领域取得更深入的学习和应用,在这一过程中,你需要面对的问题会更加多样。例如,在探索智能合约时你可能会发现,在处理大量的链上交易时 Gas 费用呈现出逐年上升的趋势。为了应对这些挑战,在区块链技术的发展中出现了多种扩展方案诸如 Layer2 扩展、多链协作以及侧链技术等以满足更高的系统性能需求。为了提升系统的性能和可扩展性 开发人员通常会采用诸如 Optimistic Rollups 和 ZKRollup 等扩容技术以提高数据传输的安全性和效率
