最近发现
Web3
这一块非常有意思,概念什么也很新颖超前,这篇文章主要是给大家讲讲关于Web3
我的理解,以及如何入门去做这一块的开发。
一、介绍 Web3
Web3
区别于传统的Web2
的地方是后端这一块,以前我们传统的Web2
应用,需要服务器来跑对应的后端服务,数据也需要放到数据库里(MySQL
、Redis
等),Web3
应用是把我们的后端服务(一般称链端)放到链上运行,数据等也是存到链上。
传统的Web2
服务一般使用Java
、Go
等来写后端服务,Web3
一般使用Solidity
(最常用)或Rust
等来编写智能合约部署到链上运行。
但Web3
目前我接触下来发现一些优点和缺点。
优点:因为你整体的服务是放到链上运行的,除非你设置了一个权限很高的账号可以修改数据,或者你写的智能合约本身有安全漏洞(但使用你这个Web3
应用的人都能看到你的智能合约代码,别人认为你的智能合约有漏洞之类的可以选择不用),否则数据是不容易被修改的。这也是为什么Web3
中Defi
项目(去中心化金融)很多。
缺点:也正是因为放到链上运行智能合约,如果你需要修改链上的数据,需要别人对你的数据进行打包确认,数据修改的即时性不是很高会有延时,从我使用ETH测试链
部署的智能合约来说,修改一个数据,大约有几秒到十几秒延时时间,所以目前我感觉对即时性很高的应用不是很适合。
但Web3
这块,目前还是一个蓝海,我个人包括有兴趣的小伙伴,下面我也列出一份学习路线。
二、了解Web3
学习Web3
开发,希望各位小伙伴一定一定要会科学上网
(非常重要)。目前很多的资料或问题都只有Google
或国外才有。
要从事Web3
开发,首先就是要了解区块链。
-
推荐一个视频:北京大学肖臻老师《区块链技术与应用》公开课,非常棒的新手了解区块链课程。
-
以太坊官网:以太坊官网,以太坊是我们做Web3开发最重要,也是应用最多的一条区块链。
三、学习智能合约开发(Solidity)
对区块链有了了解后,就需要进行Web3开发
的核心,智能合约(链端)
开发了,他是一个Web3应用
的核心,当然前端也很重要,如果不会前端的小伙伴,后面也建议去学学前端哦。
-
MetaMask
钱包:MetaMask小狐狸钱包新手入门使用教程,首先你需要先学习MetaMask
钱包的使用,我们所有跟Web3
应用的交互都需要通过一个钱包,这块非常重要。 -
Solidity
开发:WTF Academy(开发者的Web3开源大学),推荐至少学习Solidity 101
、Solidity 102
课程。 -
崔棉大师的视频课程:Solidity8.0智能合约全面精通,如果你喜欢看视频学习的话,推荐崔棉大师的课程。
-
理想区块链视频课程:智能合约solidity教程,这也是我经常看的。
-
Solidity
官方文档:Solidity 中文文档 -
Hardhat
框架: Hardhat中文文档,这是Solidity
的框架,包含了智能合约开发、测试及部署,实际开发中我们也是使用框架进行开发。 -
OpenZeppelin
智能合约库:OpenZeppelin中文文档,对于一些我们在开发中常用的智能合约库进行封装,我们可以直接引用,提高开发效率。
学习完上面的部分其实也已经跟着写了一些简单的智能合约项目了,比如如何发币
或者发NFT
其实我们已经知道了,我非常建议大家使用 Remix编辑器 试着开发自己的智能合约,如发币
或发NFT
等(只完成智能合约部分),这个编辑器包含了开发、部署、和测试等,建议大家一定要完成全流程哦!
四、Web3 对应的前端开发
学习这块之前大家一定要有前端基础哦,没有的话建议先去学习学习!Web3
对应的前端开发主要是学习前端如何通过钱包与我们的智能合约交互。相应的技术栈如下:
Ether.js
,依然推荐WTF Academy
的课程Ethers.js 101 入门、Ethers.js 102 进阶Ether.js
官网文档:ethers.js 中文文档wagmi
,一个React Hook
的集合,包含了一些和智能合约交互的Hook
:wagmi
五、实际项目推荐
学习完以上技术其实我们就有开发一个Web3应用
的能力了。但是我们还需要实际项目来练手,这里附上我之前练手写的两个项目:
进阶的话推荐学习下成熟的Defi项目:Uniswap、Pancakeswap、Sushiswap,可以在Etherscan找对应项目的智能合约源码看。
到此我们就有进行大型Web3
开发的能力,后续还需要大家多多实践、学习、进步哦。有问题的话各位小伙伴也可以下面留言交流哦!