🤖 新推出:《Quicknode 》AI 烹饪指南 10个经过验证的AI编程教程agents 。
查看食谱 Web3 基础设施如何运作:面向开发者的详解 |Quicknode答案>了解 Web3 基础设施架构>Web3 基础设施的工作原理 简而言之:Web3 基础设施是一套工具、服务和协议,使应用程序能够从区块链网络中读取数据并向其写入数据。与依赖由单一公司控制的集中式数据库的传统 Web 应用程序不同,Web3 应用程序(dapps)将区块链作为其“可信数据源”,并需要专门的基础设施栈来与其交互。 该架构栈包括用于用户身份验证和交易签名的钱包连接、用于与区块链节点通信的 RPC 端点、用于实现链上数据可查询性的索引器、用于存储大文件的去中心化存储,以及用于扩展的第二层(Layer 2)网络。理解这些组件如何相互配合,对于任何在区块链上进行开发的开发者而言都至关重要。
简明解释
传统 Web 应用程序的架构非常简单:用户打开浏览器,浏览器从 Web 服务器加载前端,前端与后端 API 进行通信,后端则从数据库中读取数据并向数据库写入数据。运营该应用程序的公司控制着每一层:服务器、数据库、API,以及关于谁可以访问什么内容的规则。
Web3 应用程序用区块链取代了中心化数据库。但区块链并非数据库。你无法对其执行 SQL 查询,无法使用标准的数据库驱动程序连接到它,也无法通过调用 API 并使用密钥向其写入数据。与区块链交互需要一个截然不同的基础设施堆栈,而理解该堆栈是构建生产级去中心化应用(dapps)的第一步。
核心区别在于交易模型。 在传统应用中,后端使用自身的凭据向数据库写入数据。而在 Web3 应用中,用户通过自己的钱包,使用私钥对交易进行签名,从而向区块链写入数据。应用程序虽会协助完成这一过程,但绝不会直接写入用户的链上状态。这种从服务器控制数据到用户控制数据的转变,正是 Web3 实现“去中心化”的关键,也是导致其基础设施更加复杂的原因。
通过 SOC 2 II 类认证 · ISO 27001
Web3 基础设施与 Web2 有何不同?
要理解 Web3 基础设施,最直观的方法是将其与大多数开发者已经熟悉的 Web2 技术栈进行比较。数据存储在不同的位置,因此读取和写入数据的路径也会相应地发生变化。
方面 | Web2 | Web3 |
|---|
真相之源 | 集中式数据库 | 区块链 |
谁负责写入数据 | 具有独立凭据的应用程序后端 | 通过钱包签名进行用户认证 |
身份 | 用户名和密码 | 钱包地址 |
数据访问 | 直接数据库查询 | RPC 端点和索引器 |
文件存储 | 云服务器 | IPFS 以及类似的网络 |
dapp 的架构
一个典型的生产级去中心化应用(dapp)由多个层组成,每层都承担着不同的功能。
前端是用户界面,通常是一个使用 React、Next.js 或类似框架构建的 Web 应用程序。 前端负责渲染、用户输入以及钱包交互。它通过提供商 API(如 ethers.js 或 wagmi)连接到用户的钱包(MetaMask、Phantom 等),从而使 dapp 能够请求钱包地址、显示余额并提示交易签名。
钱包是用户的身份和身份验证机制。Web3用户无需使用用户名和密码登录,而是连接自己的钱包。 钱包提供用户的公钥地址(即其身份)以及签署交易的能力(即其授权)。当去中心化应用(dapp)需要将数据写入区块链(发送代币、与智能合约交互、铸造NFT)时,它会构建一笔交易,将其发送至钱包进行签名,随后钱包将已签名的交易广播至网络。
RPC 端点是去中心化应用(dapp)与区块链之间的网关。每项读取操作(查询余额、查询智能合约状态、获取交易收据)和每项写入操作(提交已签名的交易)都会通过 RPCendpoint 进行。endpoint 会连接到一个区块链节点,该节点负责处理请求并返回结果。RPC 提供商的选择会直接影响应用程序的速度、可靠性和数据准确性。
后端(可选,但在生产环境中很常见)负责处理不属于区块链范畴的链下逻辑:用户会话管理、API聚合、缓存、分析、Webhook处理以及与传统服务的集成。许多去中心化应用(dApp)还利用后端来管理服务器端的交易提交,用于那些不需要用户钱包签名即可执行的操作(如管理操作或免Gas费的元交易)。
索引器将原始区块链数据转换为可查询的数据库。区块链本身并不支持复杂的查询。 您无法通过标准的RPC方法向其查询“显示该地址拥有的所有NFT”或“今天该去中心化交易所(DEX)的总交易量是多少”。索引器(如The Graph,或使用Quicknode 构建的自定义管道Streams )会处理每个区块,解码交易和事件,并将结果存储在支持SQL或GraphQL查询的数据库中。这些经过索引的数据为投资组合展示、交易记录、分析仪表盘和搜索功能提供了支持。
智能合约是应用程序的链上逻辑。它们定义了代币转移、DeFi 操作、NFT 铸造、治理投票以及任何其他可编程的链上行为的规则。智能合约只需部署一次,每次被调用时都会以确定性方式执行。它们是运行在区块链上而非公司服务器上的“后端逻辑”。
Web3 基础设施的核心组成部分有哪些?
尽管架构各不相同,但大多数生产环境中的去中心化应用(dapp)都依赖于同一套构建模块。下表列出了各层的作用及其常见示例。
图层 | 角色 | 示例 |
|---|
钱包 | 用户身份验证与交易签名 | MetaMask、Phantom |
RPC 端点 | 对链的读写权限 | Quicknode 核心 API |
索引器 | 实现链上数据的可查询性 | The Graph,Streams |
去中心化存储 | 将大文件存储在链下 | IPFS, Arweave |
智能合约 | 链上应用逻辑 | Solidity 合约 |
第2层网络 | 扩大吞吐量并降低费用 | Arbitrum,Base |
读取数据与写入数据
读取数据相对简单。前端(或后端)向节点发送一个 RPC 请求,以获取特定数据:余额、合约状态或区块内容。节点查询后返回结果。 对于简单的读取操作,如果服务提供商性能良好,这一往返过程仅需数十毫秒。对于复杂的数据需求(例如“显示该钱包所有代币的完整交易记录”),dapp 会查询索引器的数据库,而不是直接查询区块链,因为索引器已经完成了数据处理和结构化的繁重工作。
写入数据的过程则更为复杂。用户发起一项操作(例如交换代币)。去中心化应用(dapp)会构建一笔交易,其中指定要调用的智能合约、要执行的函数以及要传递的参数。dapp 会估算 gas 费用并将其展示给用户。用户在钱包中审核并批准该交易,随后钱包会使用用户的私钥对交易进行签名。 已签名的交易通过 RPC 接口endpoint 提交至网络。该交易进入内存池(mempool),等待验证者将其纳入区块。一旦被纳入,交易即被确认。dapp 检测到确认(通过轮询或 WebSocket 订阅),并更新用户界面以反映新的状态。
这一多步骤的写入过程——涉及用户钱包、gas费用估算、mempool传播、验证者纳入以及确认检测——正是Web3写入操作之所以比传统应用中点击按钮感觉更慢的原因。这也正是为何可靠且低延迟的RPC基础设施至关重要:从gas费用估算到交易提交再到确认检测的每一步,都需通过RPCendpoint 进行。
多链现实
现代去中心化应用(dapps)很少仅在单一链上运行。一个去中心化金融(DeFi)协议可能会部署在Ethereum 、mainnet 、Arbitrum 、Base 、Optimism 以及Polygon 上。一个 NFT 交易平台可能会支持Ethereum 、Solana 以及多个第二层(L2)网络。一款钱包应用需要同时显示数十条链上的余额并支持跨链交易。
这种多链架构使基础设施需求成倍增加。每条链都需要独立的 RPC 端点、独立的索引管道,以及对链特有的特性(不同的最终性模型、不同的 gas 机制、不同的交易格式)的深入理解。在 5 条、10 条甚至 80 多条链上管理这种复杂性是一项重大的工程挑战,大多数团队通过使用基础设施提供商来解决这一问题,而不是为每条链单独运行节点。
开发去中心化应用(dapp)是否需要运行自己的节点?
在大多数情况下,答案是否定的。您可以使用托管型 RPC 提供商发布生产环境的 DApp,而无需亲自运行节点。虽然运行自己的节点能为您提供最大的控制权和隐私保护,但这也意味着您需要为支持的每条链配置硬件、同步链、处理升级和硬分叉,并全天候监控运行状态。因此,对于希望专注于产品而非运维的团队而言,“自建”与“采购”的抉择通常会倾向于选择服务提供商。 如果您确实希望拥有完全控制权,我们关于运行自有节点的概述对相关成本和收益进行了权衡分析。
Quicknode 如何为 Web3 基础设施提供动力
Quicknode 提供了去中心化应用(dapps)所依赖的基础设施骨干。Core API 通过单一平台,在 80 多个区块链网络上提供生产级 RPC 端点,拥有全球分布式节点、99.99% 的正常运行时间,且响应速度比竞争对手快 2.5 倍。这意味着开发者无需为每条链单独管理节点基础设施,即可支持多条链。
Quicknode Streams 用基于推送的数据管道取代了自定义索引基础设施,该管道可将经过过滤的区块链数据直接传输到您的数据库或数据仓库,并保证数据送达且自动处理重组情况。您无需为每条链构建和维护轮询脚本,只需配置一个流(Stream),Quicknode 便会自动处理数据的提取、过滤、传输以及数据一致性。
对于更广泛的去中心化应用(dapp)技术栈,Quicknode 提供了IPFS 网关及去中心化存储的固定配置、用于增强 API(代币余额、NFT 数据、DeFi 分析)的 Marketplace 插件,以及Quicknode SDK ,可简化在 JavaScript 和 TypeScript 中的集成。这些工具共同构成了一个完整的基础设施平台,用于构建、扩展和运维生产环境的 Web3 应用程序。
常见问题解答
RPCendpoint 与索引器之间有什么区别?
RPC(endpoint )可直接回答有关当前链状态的问题,例如余额或单笔交易。索引器将完整的交易历史数据处理并存储到数据库中,以便您能够执行复杂的查询(例如钱包的完整交易历史),而仅靠RPC无法高效处理此类查询。
一个去中心化应用(dapp)可以在没有后端的情况下运行吗?
是的。许多去中心化应用(dapp)完全在客户端运行:前端直接与 RPC 端点和用户的钱包进行通信。后端是可选的,通常用于处理链下任务,例如缓存、分析和免 gas 交易。
用户如何在 Web3 应用中进行身份验证?
用户无需创建账户,只需连接钱包即可。钱包地址即作为身份标识,对消息或交易进行签名即可证明对该地址的控制权,从而取代了用户名和密码。
为什么大多数团队都会使用基础设施提供商?
要可靠地支持多种区块链,需要为每种区块链运行和维护节点、索引器及存储。服务提供商将这些功能整合到一个平台中,与自行构建相比,该平台的部署速度更快,运营成本更低。
Web3 基础设施是否完全去中心化?
部分是去中心化的,部分则不是。区块链和智能合约是去中心化的,但诸如 RPC 提供商和前端等支持服务通常运行在中心化的云平台上。实时数据源(例如区块链数据流)通常也来自托管服务提供商。
延伸阅读