开发者如何进入 Web3 - 入门必看【2024】

  • Tiny熊
  • 更新于 2024-12-03 10:44
  • 阅读 5055

Web2 的开发者,如何进入 Web3,学习路线图解读

Web3 经过 10 多年的发展,内容越来越广,很多内容还相互依赖,想入门 Web3 不知道从何处下手:从哪里开始学、应该学什么。

我自己 2017 年进入 Web3 行业 ,也一直和开发者打交道,根据我对 Web3 的理解,整理出这个文章和以下学习路线图,相信会对你所有帮助。

这个路线图是可交互式的 点击术语右上角小箭头在右侧查看更多内容,本文是浓缩版,只推荐最经典的材料。

Web2 开发者要进入 Web3,大致可以分为三阶段:

  1. 区块链入门 第一个阶段是初步了解区块链的概念,区块链有什么用,为什么需要区块链。

  2. 区块链探索与感受 接下来应该打湿鞋、弄脏手,真实使用一下区块链及原生应用,感受自我托管的自由、 透明无许可的参与、感受社区与 DAO 氛围。

  3. 选择方向、持续精进 不同的生态,就像不同的城市,在参与之后,自己被哪一个生态氛围感染了、 结合自己的兴趣,往深处扎根。

刚进入 Web3 开发的同学,切记浅尝辄止,不停换方向。

让我们分阶段继续深入吧。

区块链入门

区块链技术,是传统计算机技术(下图左侧)的延伸(下图左侧),对于开发者,还是比较好理解区块链的运行机制的。

image.png

推荐学习材料:

  1. 视频 北大肖臻《区块链技术与应用》MIT 课程《区块链与货币》区块链 101

视频不需要全部看完,理解什么是区块链、区块链是如何工作的,就够了。

  1. 文章及书籍 比特币白皮书区块链基础教程精通比特币第三版

精通比特币很全面,有一些涉及交易脚本相关的内容可跳过。

入门阶段,最重要的是理解区块链的去中心化运行方式,这里需要做一些思想的转变,因为之前我们写的程序是都是单点的,程序的运行是我们控制的,现在程序的运行是由去中心化网络共识决定。

区块链带来的是信任、公平、透明、隐私,对区块链社会价值、 加密思想,推荐课外读物:《加密朋克宣言 英文原版 - 中英双语版》 、 《可读可写可拥有 - 原版电子书摘要(推荐)》。

区块链探索与感受

了解区块链有认识之后,接下来应该进入这个加密世界,体验真实的区块链,感受区块链的开放透明、自我托管的自由、免中介的信任。

image.png

持有一些数字货币(当作是投资),是最好的体验方式,当持有一些数字货币之后,你会更关注它的价值波动,它的发展动态、这个是很好的融入社区的方式。

你可以从交易所(币安 或 OKX)或朋友那里购买一些加密货币,创建自己的钱包管理自己的资金,感受自托管与无许可,查看区块链浏览器,感受区块链的公开透明。

如果觉得这有趣,可以更深度参与,目前加密行业有 3 个主要的生态:比特币、以太坊、Solana ,它们有着几乎截然的社区文化:

  1. 比特币: 共识极强,社区关注 BTC 价值储存和点对点支付,对升级改进严谨而保守,你可以体验囤币(感受慢慢变富)和闪电网络支付。
  2. 以太坊:社区丰富多样,注重文化开放,技术创新,有大量的开源教育资源。去中心化金融(DeFi)、NFT、DAO 治理等领域主要集中在以太坊及其衍生生态上。你可以在 Uniswap 购买代币、做 LP 赚手续费 、在 OpenSea 购买一个NFT、或是铸造一个 NFT、 注册一个自己的 ENS 域名,在 polymarket 做一个预测。
  3. Solana:以高吞吐量(TPS)和低交易成本著称, 是今年 meme 的天堂, 你可以在 pumpfun 感受一下疯狂的 MEME 。

也许体验过后你会觉得这就像一个赌场,但如果深入,你会发现 token 背后其实代表价值认同,透明的规则有让所有人公平参与(并“发财”)的机会。

选择方向、持续精进

认清现实之后,如果你还认可 Web3 的价值意义和未来,可以尝试加入建设 Web3 。 大体上有三个方向: 研究方向链开发应用开发

应用开发是适合大多数开发者的选择, 可以直接挑战到应用开发

我把浏览器、钱包开发、数据分析、安全等方向都作为应用开发这一类。

研究方向,包含密码学领域(例如零知识证明、全同态加密)、共识/扩容方案、代币经济学等,我自己了解不多。

链开发

如果想做区块链开发(即开发一条公链),因为大多数链会选择 EVM 兼容,推荐先阅读以太坊白皮书和黄皮书 ,然后熟悉 Geth 代码,可以搭配 Siyan 写的 Go-Ethereum 源码剖析

最近有两个用 Rust 写的新锐客户端 Rethhelios , 有余力也可以学习。

最近很多的链(例如 Base、Sony、HashKey 等)是选择基于 OP Stack 框架开发一个 Layer2 , 而不是 Layer1 。 因此 OP Stack 值得好好学习,

学习链开发需要自己肯一些硬骨头,几乎没有教程可参考。最好的方式是深入进去参与开源项目。

给初学者建议是:先探究 GethOp Stack,其他的一些链开发框架(以下按推荐次序), 根据需要和兴趣研究:

  1. Cosmos SDK :模块化区块链开发框架
  2. Polygon CDK :Polygon 开发的链开发工具包
  3. Substrate:Rust 语言实现,用于构建定制区块链的框架
  4. Arbitrum Orbit: Arbitrum团队开发的 Layer2 及 Layer3 扩容方案

备注:今年比特币上扩容方案关注度挺大,如果你是一名比特币信仰开发者, 可关注闪电网络、客户端验证相关技术。

应用开发

如果想做应用开发链的底层实现并不需要很深的理解,但我们需要了解各链的特点,如区块链性能、去中心化程度。

例如想开发社交或游戏类应用,对底层链的性能较高,而开发高价值的 DEFI 类型应用,对去中心化可能有更多的要求。

另外,底层链支持的开发语言以及生态的活跃度及对应用扶持力度等,也要考量的,这些关系到应用实现的工作量以及获取的用户的成本。

对于找工作的朋友也是类似,生态活跃度越高,工作机会越多,竞争也会大一些。

选择一个适合的底层链对应用的成功相当重要,多数通常是选择基于一个或一类链开发,也有一些应用需要支持很多的链,尤其是基础设施类应用, 例如,钱包、跨链桥、喂价预言机等,通常要支持很多个链。

选择适合自己的生态

简单对比一下各个生态,供大家参考:

比特币 :有最大的共识与资金体量,但是脚本能力有限,基于比特币链上能做的应用较少,很多应用需要结合索引器或者客户端验证方案来实现,生态还不够成熟,不过从发展的角度看,可能有更多的机会。

比特币交易与脚本开发

EVM 生态:包含了以太坊、以及众多的 EVM 兼容链(包括波场 Tron 也算 ),一部分 BTC Layer2 也是 EVM 兼容链,这些兼容链编程模型相同,都使用 Solidity 开发智能合约(及链上运行的程序),应用生态丰富,开发工具完善、开发资源比较丰富。

Solana: 过去一年发展很强劲,生态体量上是老二,比 EVM 生态差距依旧比较大,Solana 的优势是吞吐量大,交易块,Solana 合约使用 Rust 开发,入门门槛较高。

TON:背靠有大量用户的 Telegram ,近期热度很不错, TON 同样具备高性能特点,智能合约主要使用 Func,但 TON 生态发展时间较短、工具库不完善,开发资源较少。

还有一些其他的区块链生态,如:Move 生态(包括 Sui / Aptos)、Starknet 生态、ICP生态、AO/AR 生态等,都有各自的优点,但目前关注度更小。

这里描述的是当前的生态情况,各个生态的发展都是动态的,不同的生态也有不同的文化特点,大家可以根据自己的偏好选择。

给初学者的建议是从 EVM 生态入手,资料丰富、生态也比较稳。

合约开发

Web3 应用开发和互联网应用开发相比,很大的变化是大量后端逻辑转为智能合约在链上运行(也有一部分后端逻辑转移到前端,参考下一小节),以此来去除对中心化服务端的依赖。

也有很多 Web3 应用不涉及合约开发,例如:钱包、交易所、链上数据服务等,开发这些应用时,需要了解如何与合约交互。参考下一小节。

EVM 生态开发合约最常见的以太坊智能合约语言是 Solidity,一定要学习,Yul 是开发合约的汇编语言,如学有余力,可以研究一下。

Solana、TON、Move 等生态链,有各自的开发语言,我们以后有机会单独介绍。

Solidity 开发 IDE,入门推荐使用在线 Remix IDE, 一般在项目开发中是使用 VS Code + 开发框架, 开发框架帮助我们编译、部署及测试智能合约,开发框架首选 Foundry ,测试更方便,其次是 Hardhat 。

开发智能合约时,需要理解常见的 Token / NFT 标准并会使用,如 ERC20 、ERC2612、ERC721、ERC1155 , 使用轮子也是一个很好的习惯,OpenZeppelin 是一个智能合约库,实现了各种标准,使用库可以减少自己的工作量,提升程序安全性。

开发合约程序时,要尽量遵循标准。这一点与 Web2 开发也是不同, Web2 程序通常是自己在调用,智能合约通常是公开给任何人调用,而且他人调用越多,程序价值越大。遵循标准可以让他人更方便的调用自己的程序。

合约开发进阶

Solidity 的入门简单,但要成为一名优秀的合约工程师有很多东西要学(练)习,例如掌握优化合约技巧来降低Gas费用、使用 Create2 创建及预测合约地址、理解底层 Call 调用和委托调用的机制、理解如何对合约进行升级、如何灵活应用离线签名减少用户费用、使用 Merkel 树降低链上存储成本、熟悉常见的安全漏洞、理解 DAO 治理方式及实现、理解账户抽象、了解如何利用预言机来获取链外数据等等。

另外,DEFI 去中心化金融是目前 Web3 最重要的一个应用场景,了解常见金融概念、熟悉常用 DEFI 的运行、理解闪电贷的运行,会让我们有更多的机会。

Web3 应用的前后端

合约扮演的是后端程序的, 一个体验好的 Web3 应用同样需要少不了前端、 Web3 应用是由用户自己托管资产的,因此前端需要和钱包链接一起完成交互。

Web3 应用后端更多的是当做一个缓存层,因为链上的数据不是类似数据库的结构化数据,对查询不够友好,加一个后端作为数据缓存层,可以优化用户体验。

现在也有很多专门的链上数据服务商,链上有大量开放的数据,是一个数据宝库, 如果你对大数据感兴趣,这也是一个很好的方向。

开发 Web3 前端时,需要了解常用的钱包接入方法,如会接入 MetaMask 、 WalletConnect 、Web3 Model等前端钱包组件,前端与链交互通常是通过 Vim.sh 、 Ethers.js、Web3.js 等交互库来完成,这些交互库其实是链节点提供 RPC 服务的包装。在调用时,前端通过 RPC 节点的 URL 来确定和哪一个链交互,通过 ABI 及合约地址来确定和哪个具体的函数交互。

Web3 后端主要处理数据,例如扫码区块,获取指定合约的指定事件的的数据,和链交互使用的方法与前端类似, 但根据后端语言不同,会使用不同的包装库与Web3 RPC 节点通信,使用比较多的是 Go 后端使用go-ethereum库、Node.js 后端使用 Vim.sh 、 Ethers.js等库,这几个库可以多熟悉一下。

以上每个知识点,需要大家去编码实践来加深理解。

正确心态、保持学习

Web3 发展阶段性起伏很大,也伴随不少行业乱象,平均来讲工作的稳定性没有 Web2 高。

Web3 发展快速,需要我们保持不断的学习,跟踪新的技术进展。

如果你想快速进入到 Web3 行业,参加登链社区的 区块链线下集训营 是不错的选择。

最后祝愿读者都能在 Web3 大展拳脚。

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

3 条评论

请先 登录 后评论
Tiny熊
Tiny熊
0xD682...E8AB
登链社区发起人 通过区块链技术让世界变得更好而尽一份力。