# 如何构建 Web3 应用程序：开发指南和工具

By [元峰GPT](https://paragraph.com/@gpt-2) · 2023-01-06

---

在过去的几年中，Web3 一直是一个广泛讨论的话题。更有趣的是，很多公司和创业者在几乎不了解的情况下就想进入 Web3 应用程序开发领域。如果你是这种情况——你来对地方了。

根据[2021 Electric Capital 报告](https://github.com/electric-capital/developer-reports/blob/master/dev_report_2021_updated_012622.pdf)，该社区超过 80% 的开发者在 2019 年进入市场。这些开发者中的大多数（[65%](https://www.prnewswire.com/news-releases/electric-capital-releases-2021-developer-report-301454801.html)）仅在 2021 年就进入了市场，这表明受欢迎程度大幅上升。而且，仍然只有一小部分程序员为开源 Web3 项目做出贡献。

大多数人将 Web3 与区块链、加密货币和去中心化金融联系起来。这只是部分正确。Web3 应用程序结合了这些新兴技术，但将它们用作更具包容性目标的基础：无需许可且注重隐私的互联网。

本指南将向您展示构建 Web3 应用程序所需的编码框架、技术堆栈和工程实践。您还将了解如何在开发过程中避免该技术的常见限制。但首先，让我们向您介绍 Web3 技术及其推动当代互联网发展的潜力。

什么是 Web3 应用程序？
==============

![](https://storage.googleapis.com/papyrus_images/fe8ce156e166b0d353cd5d7fabb909def3235de073b622921ede1c1282fdc50c.png)

Web3 是一个去中心化互联网的概念，其中 Web 应用程序在对等 (P2P) 网络而不是集中式服务器上运行。该技术建立在利用区块链网络、智能合约和开源工具的开源标准之上。

这与 Internet 上当前提供的内容有何不同？这需要一个简短的历史课。

从 Web 1.0 到 Web 2.0
===================

在 1991 年到 2004 年的 Web 1.0 时代，互联网就像一个大型维基百科。这些网站是静态的：大部分是您无法与之交互的只读页面。用户是创造内容和从内容中获利的能力有限的消费者。

随着 JavaScript、HTML5 和 CSS 的出现，互联网在 2004 年发生了翻天覆地的变化，引入了新的交互水平。Web 2.0 使用户成为贡献者。他们拥有在 YouTube 等平台上创建和分享内容的工具。此外，Web 2.0 使表达意见或购买彼此的内容变得容易。

Web 应用程序开始收集有关用户的信息，以便为他们提供更好的内容。例如，您的 Google 搜索查询、Facebook 点赞和转推可以显示您喜欢的内容类型。起初，平台使用它来定制您的体验并让您保持参与。但随着时间的推移，这使我们进入了有针对性的广告时代。

科技巨头在 Web 2.0 中巩固了控制权。平台可以管理您在提要中看到的信息、调整您的内容，或者在您违反其规则时限制您的访问权限。在某些时候，平台开始向广告网络出售有关您的在线活动的数据，有时并不透明。最后，科技巨头和金融机构从广告收入和佣金中获得了大部分利润。

Web3 应用程序的兴起
============

Web3 是向去中心化的转变。数据分布在计算设备（称为节点）[的区块链基础设施中，而不是科技巨头的集中式服务器。](https://unicsoft.com/blog/how-to-build-blockchain-infrastructure-requirements-challenges/)同时，智能合约算法帮助用户在没有中间人的情况下相互交易。

这个版本的网络让用户可以完全控制他们的信息。是否与广告网络共享数据，或者他们——而不是 Facebook 或谷歌——是否应该因出售数据而获得补偿取决于他们。

Web3 应用程序已成为加密货币的代名词，但该技术有多种实现方式。这里只是一些 Web3 示例：

*   [去中心化自治组织 (DAO)](https://unicsoft.com/blog/how-to-build-a-dao-on-blockchain/) ——没有中央管理机构的法律结构，其中权力分配给代币持有者，代币持有者通过智能合约对活动进行集体投票。
    
*   **不可替代代币 (NFT)** ——人们加入[NFT 市场](https://unicsoft.com/blockchain-development/nft-marketplace-development/)来交易代表数字对象（艺术、视频、音乐和其他资产）的独特代币化资产。
    
*   **Web3 浏览器**——像 Brave 这样的隐私优先浏览器可以与 dApp 集成，让你控制你看到的内容，并奖励你观看广告的原生加密货币。
    
*   [去中心化金融 (DeFi) 平台](https://unicsoft.com/defi-platform-accelerator/) ——基于区块链的服务，允许在没有第三方实体的情况下[通过数字钱包 ( dApps ) 进行交易。](https://unicsoft.com/blog/how-to-build-decentralized-apps-quickly-and-easily/)
    
*   [Web 3 游戏](https://unicsoft.com/web3-game-development-services/)——游戏玩家可以参与[游戏赚钱](https://unicsoft.com/blog/how-much-does-it-cost-to-build-a-play-to-earn-game/)，在常规游戏中交换独特的资产，并在 Metaverses（虚拟世界）中投资 NFT 房地产。
    

重要的是要注意 Web3 是一个积极发展的概念，可以塑造成更伟大的东西。但即使是现有的解决方案也强调了它是如何改进当前一代网络的。

Web3应用的优势
=========

![](https://storage.googleapis.com/papyrus_images/df5c139f297aca411c596da93169cce94b0d7dc04499aa1e3f293811c270fef5.png)

让我们谈谈在 Web3 技术的支持下，Web 应用程序和用户体验将如何转变。以下是它们的构建原则：

*   \*\*直接交易。\*\*区块链和智能合约允许金融企业、公司、企业家和消费者直接（无需中介）交换、租赁数字资产并与之交互。
    
*   \*\*降低成本。\*\*用户无需向第三方公司支付验证、处理和合法证明权利的佣金——一切都通过自动化合约完成。一些[中心化的 DeFi 平台](https://unicsoft.com/blog/cedefi-a-bridge-between-centralized-and-decentralized-finance/f)（如 Binance 的 BNB Chain）仍然会收取佣金，但与传统金融实体相比，它们的费用是微不足道的。
    
*   \*\*无需许可（开放）。\*\*任何人都可以通过他们的数字钱包与大多数 DeFi 应用程序、[NFT 游戏](https://unicsoft.com/blog/how-to-create-an-nft-game/)、Metaverse 世界和其他 Web3 应用程序进行交互。
    
*   \*\*在线隐私。\*\*Web3 引入了数字身份的概念——一种无需提供个人身份信息即可与网络交互的能力。这也意味着科技巨头无法收集、存储您的网络活动并将其出售给未公开身份的第三方。
    
*   \*\*数据所有权。\*\*用户决定在想看广告时观看哪些内容，以及是否共享个人信息。
    
*   \*\*透明度。\*\*区块链是一种不可更改的分类账，它公开存储有关所有交易的信息，因此每个人都可以验证其所有权。
    
*   \*\*防故障存储。\*\*去中心化的 Web3 应用程序没有单点故障。网络中的每个节点（服务器）都可以存储整个区块链的独立副本。因此，即使多台服务器宕机，系统也能继续运行，并且在发生事故后可以快速恢复信息。
    
*   \*\*可组合性。\*\*Web3 应用程序开发是开源的。Web 开发人员可以完全访问其他应用程序中的代码，以创建数字资产、智能合约和共识机制。
    

从理论上讲，Web3 和 Web2 之间的飞跃是巨大的。有人可能会争辩说，它与互联网的第二代和第一代之间一样具有戏剧性。但是，应用程序开发所需的技术是否足以广泛使用？

Web3 应用开发技术栈
============

![](https://storage.googleapis.com/papyrus_images/71f910cec11213730ca2b97168e304910756a7ba56ddd136bd6b23ef0386248a.png)

![](https://storage.googleapis.com/papyrus_images/4f75058b32050795a550584da7bf2837f4374743439bbd82502439e679a94ef5.png)

![](https://storage.googleapis.com/papyrus_images/c9dcec629729a36d606ff404594b00df37db86b886c6c69de6f50fc64190cf90.png)

对开发人员来说是个好消息——Web3 开发工具包在过去几年中取得了巨大进步。但我们不想列出您可以使用的所有新兴工具。相反，我们希望专注于大多数 Web3 应用程序所需的技术堆栈。

前端级别
====

客户端的 Web3 应用程序开发框架与典型的 Web 和移动应用程序没有太大区别。熟练掌握 HTML、CSS 和 JavaScript 足以构建 99% 的应用程序。

你的技术栈可能包括一个[React](https://reactjs.org/)开源库，因为它提供了越来越多的扩展，包括用于移动版本的 React Native。Next.js框架特别有助于构建授权模块、网站布局和 API [。](https://nextjs.org/)

区块链协议层
======

您想选择流行的区块链网络支持的后端编程语言。大多数 Web3 应用程序都在以太坊虚拟机 (EVM) 上运行——这是一个允许在以太坊生态系统上执行机器代码的软件平台。Ethers.js库将是将您的应用程序与该区块链网络集成的首选[。](https://docs.ethers.io/v5/)

或者，您可以选择基于 Rust 编程语言构建的资源密集度较低的 Solana 或 Polkadot 区块链平台。Solana 的网站提供了一个完整的[工具套件](https://docs.solana.com/cli/install-solana-cli-tools)，其中包含有关与网络交互的大量文档。要在 Polkadot 网络上构建 Web3 应用程序，您需要一个[Substrate 框架](https://polkadot.network/build/)。

节点级别
====

Web3 应用程序使用节点与区块链网络交换数据。但是，运行您自己的节点需要专职维护、后端设置和负载平衡。这就是为什么大多数公司更喜欢节点提供商——为您的应用程序托管基础设施的公司。

[QuickNode](https://www.quicknode.com/)、[Alchemy](https://www.alchemy.com/)和[Infura](https://infura.io/)是流行的 Web3 基础设施提供商，支持以太坊、Solana 和其他主要测试网。除了节点之外，这些平台还提供一套 Web3 API、SDK 和其他简化开发的工具。

契约等级
====

[选择用于智能合约开发](https://unicsoft.com/blockchain-development/smart-contract-development/)的编程框架至关重要，原因有二。合同算法为基于 Web3 的应用程序提供支持。在你的博客上发帖，在[DeFi 交易所](https://unicsoft.com/defi-exchange-development-services/)交易数字资产，或者在 NFT 游戏中与玩家互动——所有这些都由算法控制。第二个原因是互操作性——您选择的语言可能会将您锁定在某些区块链网络之外（稍后会详细介绍）。

你的团队应该选择一种通用的编程语言并且足够熟练以构建干净和安全的代码。[Solidity](https://docs.soliditylang.org/)和[Vyper](https://vyper.readthedocs.io/en/stable/)是 EVM 上智能合约的流行高级编程语言。另一方面，Solana 和 Polkadot 网络需要 Rust（有时是 C 或 C++）。

开发环境是构建智能合约的必备条件。例如，[Hardhat](https://hardhat.org/)和[Truffle](https://trufflesuite.com/)提供与 Web3 兼容的工具，可以简化网络的测试、调试和部署算法。

数据存储级别
======

将 Web3 应用程序的每条数据直接存储在区块链上是一种低效的资源使用。此外，许多数字资产（主要是 NFT）不包含任何媒体——它们只是指向一个 URL。如您所知，URL、网站和域总是会过期。您的开发人员可以通过去中心化存储协议避免这些限制和相关风险。

许多 Web3 存储解决方案结合了星际文件系统 (IPFS) 和 Filecoin 存储协议。[IPFS](https://docs.filecoin.io/)节点允许您根据数字资产的内容（而不是位置或名称）来识别数字资产，以创建不可变链接。为了使 IPFS 存储持久化并确保数据的完整性，您可以使用像[Filecoin](https://filecoin.io/)这样的 P2P 网络。

索引级别
====

节点只能从区块链中检索原始数据，因此对高级分析毫无用处。最重要的是，Web3 工具包缺少用于处理此数据的本地索引层。您可以手动组织网络中的所有数据，但这将是数月的艰苦工作。相反，连接索引协议要容易得多。

[Graph](https://thegraph.com/en/)允许您集成为 Web3 应用程序数据创建抽象层的 API。这些 API 与您的节点、智能合约和其他数据存储协议进行通信。这使您的应用程序可以快速获取交易的低级见解、返回关键元数据、提取媒体以及执行其他高级查询。

无服务器平台
======

Web3 应用程序开发平台之所以有用，原因有很多。它们为复杂的计算任务提供处理能力。此外，它们还为您提供应用程序所需的后端，包括用户身份验证和数据库管理机制。该平台还自动执行冗余任务，例如在区块链上记录用户活动。

Amazon Web Services (AWS) 是 Web3 项目的流行解决方案。根据亚马逊自己的说法，大约[25%](https://aws.amazon.com/blockchain/)的以太坊工作负载在他们的平台上运行。[Moralis](https://moralis.io/)是另一个非常易于访问的工具，它为基于区块链的项目提供了丰富的开发工具、库和 API。

这应该涵盖大多数应用程序的基本技术堆栈。但正如我们的经验告诉我们的那样，开发充满挑战，即使使用预构建的工具也是如此。

Web3 开发的主要挑战
============

Web3 的某些技术方面引发了对其可访问性的质疑，并可能使应用程序开发复杂化。该技术目前面临的核心挑战是：

*   \*\*大规模应用。\*\*大多数区块链项目都基于以太坊，与其他区块链相比，以太坊具有更高的交易费用和更慢的性能。为了解决这些问题，我们使用[第 2 层解决方案](https://unicsoft.com/blog/your-primer-on-layer-2-blockchain-solutions/)（如侧链）或坚持使用资源密集度较低且吞吐量更高的网络。
    
*   \*\*互操作性问题。\*\*您的 Web3 应用程序中的智能联系人和数字资产可能与某些区块链不兼容，具体取决于您使用的技术堆栈。这就是为什么我们更喜欢灵活的编程框架并遵循最新的[MetaFi 标准](https://unicsoft.com/blog/metafi-decentralized-finance-defi-for-the-metaverse-economy/)，使数字资产在流行的网络上可用。
    
*   \*\*监管模糊。\*\*去中心化的 Web3 生态系统意味着交易在很大程度上仍然不受监管，为技术[事故和诈骗](https://wifpr.wharton.upenn.edu/wp-content/uploads/2021/05/DeFi-Beyond-the-Hype.pdf)留下了许多漏洞。尽管解决方案尚不清楚，但目前最好的选择是使您的程序与行业标准数据隐私法（如 GDPR、FDA 或 HIPAA）保持一致。
    
*   **非法活动。** [Chainalysis 的《2022 年加密货币犯罪报告》](https://blog.chainalysis.com/reports/2022-crypto-crime-report-preview-cryptocurrency-money-laundering/)显示，自 2017 年以来，犯罪分子已经发送了价值超过 330 亿美元的非法加密货币。然而，这仅占 2021 年总交易量的不到 0.05%。此外，这个问题可以通过实施无创 KYC 检查来解决。
    
*   \*\*安全风险。\*\*黑客攻击在区块链中非常普遍，因为您的协议仅与底层智能合约一样安全。更糟糕的是，您无法在发布后修改合约算法。因此，您需要经验丰富的智能合约开发人员和彻底的审计，以确保合规且无错误的代码。
    
*   \*\*昂贵的开发。\*\*从头开始开发统一且安全的 Web3 应用程序需要的资源比大多数公司愿意花费的要多。幸运的是，您不需要创建区块链基础设施的每个组件。
    

作为一家经验丰富的Web3应用开发公司，Unicsoft可以解决所有这些问题。我们充分利用这项技术的可组合性方面，让您的应用程序在短时间内启动。

我们的团队可以在智能合约和前端级别开发您的[DeFi 借贷平台](https://unicsoft.com/blog/how-to-build-a-defi-lending-and-borrowing-platform/)、[NFT 市场或其他基于区块链的应用程序。](https://unicsoft.com/blog/how-much-does-it-cost-to-create-an-nft-marketplace/c)这将为您提供一个安全且高度可扩展的平台，该平台可在数周而不是数月内与流行的区块链网络集成。

下一步是什么？
=======

Web3 是中心化互联网向注重隐私、免佣金和财务独立的去中心化环境的演变。尽管这项技术现在还很粗糙，但它的优势很可能会吸引大量用户。这就是为什么您可能希望尽早接受 Web3 应用程序开发。

高级技术堆栈和编码能力并不是您唯一需要的东西。基于区块链的项目需要专业知识，因为您必须应对开发过程中积累的挑战。值得庆幸的是，我们拥有丰富的经验。

[Subscribe](null)

_链游 /Dapp /NFT数藏 /公链 /交易所等区块链技术开发业务对接。 开启区块链元宇宙之旅，拥抱数字未来。 业务咨询：15829049609_

![](https://storage.googleapis.com/papyrus_images/7985c58f85e48e3f638d281e91daef1ee240a3b9418ddf85adab3c746a83c69d.png)

---

*Originally published on [元峰GPT](https://paragraph.com/@gpt-2/web3)*
