---
title: "什么是 RPC 节点？"
description: "构建链上应用所需了解的 RPC 节点知识"
---

# 什么是 RPC 节点？

去中心化应用（app）在处理发送交易、获取区块数据或查询区块链状态等用户请求时，始终需要区块链数据。节点通过远程过程调用（Remote Procedure Calls, RPC）实现这一功能，将 app 与区块链连接起来。区块链 RPC 节点使 app 能够与区块链交互，方便地访问用户数据。

在本文中，我们将深入探讨什么是区块链 RPC 节点及其工作原理。读完本文后，你将对区块链 RPC 节点、RPC 端点，以及如何使用[RPC 节点提供商](https://www.alchemy.com/overviews/blockchain-node-providers)有清晰的理解。

## 什么是远程过程调用（RPC）？

远程过程调用（Remote Procedure Call，简称 RPC）是一种轻量级的软件通信协议，它允许一个程序（客户端）与托管在不同网络上的远程程序（服务器）通信，而无需了解该服务器网络的具体细节。

例如，你可以从本地计算机发起一个 RPC，向远程服务器系统请求资源。客户端发出请求后，会促使服务器执行一个过程，称为**子程序（subroutine）**。

在区块链中，app 需要区块链数据才能正常运行。因此，在 RPC 客户端-服务器模型中，app 是客户端，服务器则是 RPC 节点。

### 什么是 RPC 节点？

RPC 节点是运行区块链客户端软件的计算机——例如，一台同时运行 Ethereum 区块链执行层（EL）和共识层（CL）基础设施的服务器。

[Ethereum 节点的类型](https://www.alchemy.com/overviews/what-is-an-ethereum-node)有多种，包括轻节点、全节点和归档节点。相比之下，在 Solana 上，开发者既可以运行验证者节点，也可以运行 RPC 节点。验证者节点运行 Solana 共识协议，并通过区块验证获得奖励，而 [Solana RPC 节点](https://www.alchemy.com/overviews/solana-rpc)仅仅作为 Solana app 获取区块链信息的网关。

在本文中，我们将*任何能够响应 RPC 请求的节点*都视为 RPC 节点。

### 什么是 RPC 端点？

RPC 端点是程序发送 RPC 请求以访问服务器数据的网络位置。例如，将 app 连接到 [Ethereum RPC 端点](https://www.alchemy.com/chain-connect/chain/ethereum)后，你就可以轻松执行需要实时使用区块链数据的操作。

安装了适当软件的*节点*具备响应 RPC 请求的能力。运行在节点上的 RPC 端点，指的是 app 用来为用户获取区块链信息的服务。因此，所有 RPC 端点都运行在 RPC 节点上，所有 RPC 节点都是带有 RPC 端点的节点。所以，我们将交替使用 RPC 节点和 RPC 端点这两个术语。

## RPC 端点有哪些不同类型？

节点 RPC 端点主要分为两大类基础设施：公共和私有。此外还有备用 RPC 端点，用于帮助 app 为其 RPC 端点维护容错备份。

### 1. 公共 RPC 端点

公共 RPC 端点是运行在 RPC 节点上的共享、限速资源，任何人都可以向其发送请求。区块链提供公共 RPC 端点，是为了让任何人都能与区块链收发数据（例如发起一笔交易）。

公共端点免费，随时可用，但由于它们并非为支持生产级应用而设计，通常会有速率限制。此外，公共 RPC 端点没有客户支持，缺乏活跃的开发者基础设施，也无法满足运行中的 app 的扩展需求。

### 2. 私有 RPC 端点

[**私有 RPC 端点**](https://www.alchemy.com/overviews/private-rpc-endpoint)专门服务于你的 app 的需求，避免了其他程序造成的请求拥堵，能够获得快速、稳定的 RPC 服务。

私有 RPC 节点根据你的请求运行。此外，如果你使用节点提供商，私有 RPC 端点通常还附带明确的服务级别协议（SLA），保证 app 在任何时候都能获得高性能服务。

例如，Alchemy 提供[免费的 Optimism RPC 节点](https://www.alchemy.com/overviews/optimism-node)、[免费的 Base RPC 节点](https://www.alchemy.com/docs/reference/base-api-quickstart?utm_source=overview&utm_medium=overview&utm_campaign=node)、[免费的 Monad RPC 节点](https://www.alchemy.com/docs/reference/monad-api-quickstart?utm_source=overview&utm_medium=overview&utm_campaign=node)，以及覆盖 [40+ 条链](https://www.alchemy.com/docs/chains?utm_source=overview&utm_medium=overview&utm_campaign=node)的免费 RPC 节点。

### 3. 备用 RPC 端点

如果你的 RPC 端点出现宕机，[**备用 RPC 端点**](https://www.alchemy.com/overviews/alternative-rpc-endpoint)可以作为备份端点，帮助 app 维持流畅的用户体验。

如果没有可用的备用 RPC 端点，一旦主 RPC 端点出现故障，你所有用户的交易也都会失败。为 app 配置备用 RPC 端点是一种很好的实践，可以确保不存在单点故障。

## RPC 节点是如何工作的？

RPC 节点的作用是将 app 与区块链的所有信息连接起来。当程序发起一个子程序时，RPC 节点能够通过区块链检索所需的请求，并将结果数据返回给 app。

在本节中，我们将简要介绍区块链 RPC 请求背后的技术。

### JSON-RPC 协议

区块链中使用的标准 RPC 规范称为 JSON-RPC。它以能够快速接收和处理数据请求而著称。

回顾客户端-服务器模型：你的 app 是客户端，你的 RPC 端点是服务器，而 JSON-RPC 则是你向 RPC 端点请求服务时所使用的具体方法。

通过使用每条区块链 JSON-RPC API 所定义的方法，你几乎可以请求 app 可能需要的任何类型的区块链数据。

以 JSON-RPC 方法的多样性为例，Ethereum 定义了一组从 Ethereum 网络获取数据的核心方法。这些方法分为三类：gossip 方法、state 方法和 history 方法。

1. **Gossip 方法**——追踪区块链的最新区块（head），用于查找区块
1. **State 方法**——返回区块链当前所有数据状态的报告
1. **History 方法**——检索链上任意区块的历史记录

每当用户的操作需要依赖区块链数据时，应用程序（客户端）就会使用 JSON-RPC 方法，通过 RPC 节点（服务器）发起调用（子程序），RPC 节点再返回信息供应用程序使用。

# 如何访问 RPC 节点

开发者主要有三种方式访问 RPC 节点：使用 RPC 节点提供商提供的私有 RPC 端点、运行自己的节点（即自托管节点），或通过公共 RPC 节点发送流量。

## 1. 使用 RPC 节点提供商

[**RPC 节点提供商**](https://www.alchemy.com/overviews/blockchain-node-providers)负责为你的 app 处理所有节点的搭建、管理和维护工作，确保其顺利运行，这是构建链上应用的最佳实践。

因此，通过[选择区块链节点基础设施提供商](https://www.alchemy.com/overviews/how-to-choose-a-blockchain-node-provider)，开发者无需再承担节点搭建和维护的责任。顶级区块链节点提供商原生集成了这些功能，为开发者节省了时间和精力，使其能够专注于打造创新的终端用户产品。

大多数主流区块链都有对应的节点提供商，例如 Ethereum

## 如何开始使用 Alchemy 的 RPC 节点基础设施

Alchemy 在 [40+ 条链](https://www.alchemy.com/docs/chains?utm_source=overview&utm_medium=overview&utm_campaign=node)上提供 RPC 端点，包括 Ethereum、Solana、Monad、Base 和 Arbitrum。只需点击几下，你就可以开始使用高性能的 Alchemy RPC 节点。

1. 创建 [Alchemy 账户](https://dashboard.alchemy.com/signup?utm_source=overview&utm_medium=overview&utm_campaign=node)。

2. 在控制台上使用 Create App 按钮创建你的第一个 app。

<ImageBlock
  src="https://media.alchemy.com/1744387283-screenshot-2025-04-11-at-8-59-57-am.png"
  alt="dashboard > create an app"
  width={1565}
  height={235}
/>

3. 为你的 app 命名，并选择使用场景

<ImageBlock
  src="https://media.alchemy.com/1744387801-screenshot-2025-04-11-at-9-09-45-am.png"
  alt="Alchemy 控制台:为新应用命名并选择使用场景"
  width={1344}
  height={633}
/>

4. 选择所需的区块链和网络。

<ImageBlock
  src="https://media.alchemy.com/1744387437-screenshot-2025-04-11-at-9-03-44-am.png"
  alt="Alchemy 应用设置:选择目标区块链和网络"
  width={1350}
  height={827}
/>

5. 在控制台上使用 "View Key" 按钮，复制新节点的 URL，即可开始向其发送 RPC 请求

<ImageBlock
  src="https://media.alchemy.com/1744387541-screenshot-2025-04-11-at-9-04-58-am.png"
  alt='Alchemy dashboard: using the View Key button to copy the RPC node URL'
  width={1342}
  height={775}
/>

## 如何运行自己的 RPC 节点

尽管[**运行自己的节点有其优势和权衡**](https://www.alchemy.com/overviews/running-your-own-node)，但对于需要完全掌控节点配置的技术型开发者和 web3 团队来说，这仍是一种可选方案。在这里，我们将从较高层面介绍在 Ethereum 区块链上搭建自己节点的步骤。

### 1. 选择你的 RPC 节点配置

Ethereum 节点由三部分组成：客户端实现（例如共识客户端和执行客户端）、硬件与系统环境，以及配置设置。让我们从较高层面逐一了解这些内容。

#### **客户端实现**

这意味着需要为你的执行层（EL）和共识层（CL）[选择节点客户端软件](https://www.alchemy.com/overviews/execution-layer-and-consensus-layer-node-clients)。EL 客户端软件包括 **Besu**、**Erigon** 和 **[Geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one)** 等。共识层客户端软件包括 **[Lighthouse](https://www.alchemy.com/dapps/lighthouse-one)**、**Teku** 和 **Lodestar** 等。

#### **硬件与系统环境**

你需要将客户端软件安装在能够运行该客户端的硬件上。硬件需求会因所选客户端及所构建的区块链不同而有所差异。例如，运行 Solana 节点对硬件的要求要高于 Ethereum。具体硬件规格请参阅相应区块链的文档。

开发者既可以选择自行搭建机器，也可以从专门设计用于运行节点的硬件系统提供商处购买硬件。业内领先的硬件提供商 dAppNode 提供的最便宜的通用节点机器，价格也超过 1500 美元。

#### **客户端设置**

运行自己节点的主要好处之一是高度可定制。你可以在搭建过程中，根据自己的硬件与软件需求以及具体的客户端要求，轻松进行配置。

### 2. 启动 RPC 节点

在完成所有硬件和软件方面的决策后，就可以启动节点了。你可以选择带引导的搭建服务，通过友好的用户界面（UI）完成客户端搭建的各项决策，也可以使用命令行界面（CLI）手动完成节点搭建。

**高层步骤如下：**

1. 安装两个客户端软件（EL 和 CL）
1. 启动两个客户端，并完成你所决定的相关配置设置

之后，你的节点会与区块链进行同步。根据你硬件的速度以及该区块链历史状态的大小，这一过程可能耗时从几天到几周不等。

漫长的同步过程是运行自己节点的一个权衡之处。如果你需要更多容量，搭建一个新节点可能需要数天甚至数周时间，而节点提供商则可以按需提供额外容量。

### 3. 维护你的 RPC 节点

维护成本是运行自己节点的另一项权衡因素。节点运行并不总是稳定的，可能会出现宕机、失步，或因各种原因发生故障。此外，执行层和共识层软件也会持续被其节点客户端软件的开发者升级。

### 为什么 RPC 节点提供商比自己运行 RPC 节点更好？

**除了能为你节省节点管理所耗费的时间和资源外，节点提供商还能保证 24/7 全天候、可靠、低延迟的节点访问。**你的节点将由一支专注于保障其 RPC 节点高性能的专业团队负责维护。

选择运行自己的节点，对于追求极高可定制性来说是不错的选择，但并不能带来流畅、无负担的开发者体验。

<EbookCta
  eyebrow="免费指南"
  title="自建 vs. 购买:区块链基础设施"
  description="组建基础设施团队前请先阅读本文:自建方案在处理第一个生产请求之前,每年成本可能高达 85 万至 100 万美元以上。查看完整成本明细。"
  ctaLabel="下载指南"
  ctaHref="/resources/build-vs-buy"
  coverImage={{
    src: "https://media.alchemy.com/ebooks/cta-build-vs-buy.png",
    alt: "Build vs. Buy: Blockchain Infrastructure ebook cover",
  }}
/>

## 如何通过公共节点发送流量

**根据你所使用的区块链不同，你可以查阅该网络的文档，了解其提供的公共 RPC 端点，并通过该 URL 转发流量来发送请求。**部分区块链，例如 Solana，仅提供数量有限的公共 RPC 节点供访问。

以下是使用 Solana 公共 RPC 节点发起 curl 请求的示例。

<CodeSnippet
  code={`curl /* Solana public RPC endpoint URL here */ -X POST -H "Content-Type: application/json" -d' 
{  
"jsonrpc": "2.0",    
"id": 1,    
"method": "getBalance",    
"params": ["83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"]  
}`}
  language="text"
  theme="dark"
/>

不过需要注意的是，你在公共端点上的请求会受到速率限制，因此并不推荐开发者采用这种方式。

## 开始使用 Alchemy 的免费 RPC 节点进行构建

连接 RPC 节点主要有三种方式：使用像 Alchemy 这样的节点提供商、运行自己的节点，以及通过公共节点发送流量。由于运行自己的节点需要承担大量不必要的开销，而公共节点又受到严格的速率限制，因此利用 Alchemy 慷慨的免费 RPC 节点额度，是构建链上应用的最佳选择。

准备好使用托管 RPC 节点，让你的开发体验更加顺畅了吗？

[注册 Alchemy](https://dashboard.alchemy.com/signup?utm_source=overview&utm_medium=overview&utm_campaign=node)，即刻开始使用免费 RPC 节点！

## 常见问题

### 什么是 RPC 节点？

RPC 节点是运行区块链客户端软件的计算机，使应用程序能够通过远程过程调用（RPC）与区块链进行交互。

### RPC 节点是如何工作的？

RPC 节点的工作方式是将 app 与区块链信息连接起来，接收来自应用程序的请求，通过与区块链交互来处理这些请求，并使用 JSON-RPC 协议返回结果。

### RPC 端点有哪些不同类型？

主要有三种类型：公共 RPC 端点（共享、限速的资源）、私有 RPC 端点（专用于你的 app 需求），以及备用 RPC 端点（用于容错的备份端点）。

### 运行自己的 RPC 节点与使用节点提供商有什么区别？

运行自己的节点需要投入大量硬件资源、维护成本，并耗费同步时间，而像 Alchemy 这样的 RPC 节点提供商则负责所有搭建、管理和维护工作，提供可靠的 24/7 访问，并带来更好的开发者体验。

### 什么是 JSON-RPC 协议？

JSON-RPC 是区块链中使用的标准 RPC 规范，它通过 gossip 方法（查找区块）、state 方法（当前区块链状态）和 history 方法（历史记录）等方法实现快速数据检索。

### 哪些区块链支持 RPC 节点？

RPC 节点支持多条区块链，包括 Ethereum（具有执行层和共识层）、Solana、Base、Arbitrum、Optimism 等诸多链，Alchemy 支持的链已超过 40+ 条。

### 为什么 RPC 端点对开发者很重要？

RPC 端点为 app 提供了关键的网关访问能力，使其能够获取区块链数据、提交交易并与智能合约交互，而无需开发者自行运行完整节点。

### 我该如何开始使用 RPC 节点？

你可以创建一个 Alchemy 账户，通过控制台搭建你的第一个 app，选择所需的区块链和网络，然后使用系统提供的端点 URL 开始发送 RPC 请求。
