Web3堆栈:开发者参考
你是否想参与构建Web3项目?本参考手册将概述最受欢迎的层和开发环境。
目前关于Web3的话题已经引起了广泛的关注,这并不是秘密。许多人已经离开FAANG和知名初创公司,转而追求在元宇宙中的新起点。
假设你也有类似的渴望,你应该从哪里开始呢?本文专门为那些希望直接跳入Web3开发的人而设。我们的重点将放在各种类别上,每个类别都包含了有价值的资源,可以让你的旅程起步。
为了使这个参考手册易于使用,我将把资源分成不同的部分。
这些部分包括:
- 层级。 在开发中使用最广泛的层级。
- 开发环境。 帮助你部署到这些层级的工具。
- 身份。 如何围绕钱包身份构建并使用加密登录。
- 存储。 使用点对点技术创建永久数据存储。
- API。 直接访问主要网络以获取信息。
- 前端。 前端的热门框架。
堆栈是一个术语,用来定义用于实现特定目标的特定技术组合。无论是全栈开发还是在这种情况下的Web3堆栈,值得注意的是,构建Web3应用和产品所涉及的技术是相当“不稳定”的。
许多事情正在发生变化,因为越来越多的人开始在区块链上构建软件。因此,我们在这个参考手册中的目标是提及已经在实际项目中使用过的资源。
如果一切听起来都很好,我们可以开始了。
层级
任何Web3项目的基础都是一个层级。你的应用程序或产品将在其中运行的具体区块链网络。
#1. 以太坊
Ethereum因其本地化程序而广受欢迎。
此后,开发人员已经使其成为构建下一代Web3应用程序的首选区块链层。对于许多与NFT相关的应用程序,以太坊也是首选层级,因此如果你想在NFT相关的应用中工作,以太坊可以提供很多开箱即用的功能。
#2. Polygon
多边形层是以太坊的侧链,提供了更复杂的安全实践,同时保持较低的交易(gas)费用。对于交易数量极高但交易价格较低的项目,它是一个受欢迎的选择。
由于多边形是一个侧链,它通常被称为第二层区块链。然而,Polygon’s rapid development makes it a popular choice not only for NFT应用程序以及dApp和支付系统。
其他值得注意的Web3层级:
- Solana。专为大规模构建DeFi应用而建立的区块链。
- NEAR Protocol。具有丰富的开发资源的智能合约区块链。
- Polkadot。用于的跨区块链协议。
- Tezos。用于构建分散式创意平台的以能源为焦点的平台。
- Fantom。用于构建dApp的开源智能合约平台。
开发环境
开发环境可以让你跳过整个“从头开始”的部分。目前这些环境主要基于以太坊。
#1. Hardhat
Hardhat 是Ethereum开发者的开发环境。它通过帮助开发者自动化构建和组合去中心化应用程序和智能合约的过程来工作。它的流行度来自于内置的Hardhat网络,这是以太坊网络的一对一副本,您可以使用它来在本地测试您的应用程序。
#2. Truffle
Truffle 是一个基于JavaScript的构建智能合约的框架。它假定您使用EVM(以太坊虚拟机),为您提供加快开发过程的工具。其中一些工具包括 automated testing,合约编译器,以及从控制台直接访问合约的独立工具。
其他值得注意的Web3开发环境:
- Foundry. 是一个基于Rust的以太坊应用程序构建工具包。
- Brownie. 是一个基于Python的构建和测试智能合约的框架。
- Anchor. 是一个用Rust编写的与Solana合作的框架。
- Embark. 是一个全能框架,用于在以太坊上构建应用程序。
- Waffle. 是一个定制的智能合约测试框架。
身份认证
与传统的用户名和密码身份验证不同,Web3开发者实现了钱包的使用,但也使用了 public keys。
#1. WalletConnect
WalletConnect 是一个用于通过移动钱包连接到dApp的开源协议。使用WalletConnect的主要概念是通过扫描 QR code,用户可以验证身份并批准与Web3应用程序的新连接。
如果您了解Pillar或 MetaMask等钱包 – 它们都直接与WalletConnect集成。这也意味着您可以访问大量的开发者资源。最后但并非最不重要的是,该协议与所有主要区块链兼容,并且会频繁添加更多的区块链。
#2. Spruce
Spruce是一家 Y Combinator backed 初创公司,旨在将去中心化身份的概念应用于区块链以外的领域。该工具包旨在帮助用户在各种媒体上验证其数字身份:社交媒体、个人网站和区块链网络。
存储
在Web3上如何存储媒体-视频、照片等-?这主要通过使用P2P文件存储协议来完成。
#1. IPFS
IPFS 是世界领先的P2P(点对点)存储协议。一旦您将文件上传到IPFS,该文件将被调整大小,通过自定义哈希进行安全保护,并被分配一个指纹作为其唯一标识符。
之后,该网络的其他节点(系统或人员)可以访问文件,验证文件,并将其存储在其缓存中。一旦缓存,任何具有正确访问方法的人都可以访问该文件。
IPFS的最终目标不仅仅是提供分散的存储系统,而且还要确保内容具有数十年的寿命而不是几年。例如,一个网站在一段时间后消失,其包括媒体在内的所有内容都会丢失。IPFS为此提供了一个真正的解决方案。
#2. Skynet
Skynet 提供使用Sia(去中心化)云网络的可访问文件共享。您实际上可以直接从主页上使用它。只需上传文件,您将获得一个链接。它的有效期为90天,除非您注册您的API密钥。不过,在开发环境中,Skynet使您可以在自己的去中心化应用程序中轻松复制相同的用例。
#2. Filebase
Filebase是一家SaaS初创公司,与 Amazon S3 API 直接连接。您可以使用此API从S3存储桶中提取数据,然后将其重新分发到各种去中心化存储选项。
目前,Filebase支持基于Web3的存储选项,如Skynet、IPFS、Sia和Storj等。作为开发者,这意味着您可以简化为客户提供去中心化文件存储服务的过程。
作为新用户,您还可以免费获得5GB的存储空间,尽管付费计划的定价也是合理的。
其他值得注意的Web3存储解决方案:
- Arweave. Arweave是一种允许您使用一次性预付费来永久可持续地存储数据的协议。
- Filecoin. 在去中心化的云环境中存储任何类型的媒体。
- Swarm. 是一个自我维护的基于P2P的存储节点,通过以太坊智能合约提供激励。
- Aleph. 构建dApp,并让Aleph为您管理基于云的存储。
API
与传统的基于数据库的堆栈不同,开发人员使用API与区块链进行交互,要么请求数据,要么将数据存储在其中。API有时也被称为Clients。
#1. The Graph
The Graph 是一种用于连接各种区块链的一体化API解决方案。该API的目标是帮助开发人员访问否则需要构建单独算法才能获取的数据。例如,区块链中的数据点从简单的地址到基于智能合约的复杂交易。
一个示例是追踪NFT的历史。
虽然追踪单个购买历史可能相对容易,但当您试图了解与不同购买之间的关系时,难度逐渐增大。在这种情况下,The Graph API提供了预制的调用和索引目录,以帮助您快速可视化特定的用例。
#2. Web3.js
Web3.js 是与以太坊直接交互最流行的JavaScript API。它主要用于开发与以太坊链交互的客户端应用程序。Web3.js包含的子库集合提供了转账、智能合约管理等功能。
#3. Alchemy
Alchemy迅速崛起成为最受尊敬的Web3平台之一。他们的方法是教育开发人员如何快速构建和扩展Web3应用程序。他们通过提供复杂的区块链API和一套开发人员工具来实现这一目标。
#4. useDApp
useDApp 是一个基于React的框架,用于与以太坊区块链进行交互。它由React.js、Ethers.js库、Waffle和Web-3 React组件组成。通常用于构建易于访问的网站前端,可以根据项目需求显示各种数据查询。
前端
开发人员使用什么样的框架来构建Web3项目的前端界面?
#1. React
React 的流行程度是无与伦比的。毫不奇怪地,它也是最受欢迎的Web3网站前端库。基于组件驱动的架构意味着开发人员可以在不干扰核心设计的情况下同时工作于前端的多个部分。
您可以查看Web3-React library on GitHub以获得一个可靠的起点。
#2. Next
Next.js 是React的继任者,尽管二者没有直接关联。大型Web3项目需要庞大的资源管理,Next.js提供了静态和动态项目的原生工具,被像Binance、Bitscreener、Hashnode等公司使用。
要快速入门,请参考Next Web3 Boilerplate。
开始Web3开发
这对于刚刚开始的人来说,可能要消化的东西太多了。事实是,这个领域的变化非常快。虽然最初的项目都与NFT有关,但现在更加注重去中心化网络和个体链接。
至于开始Web3项目,这个参考资料应该足够了。我还建议保持关注Twitter和Discord上的动态,因为这两个社区是跟上最新Web3趋势最活跃的。