---
title: "如何设置备用 RPC"
description: "添加备用节点提供商以防止宕机和交易卡住"
---

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

远程过程调用（RPC）是一种技术，软件借此可以在同一网络中与其他系统进行远程通信，以访问软件或数据。在 RPC 方法中，客户端发起请求（例如请求数据），服务器远程处理该请求。

在区块链领域，这项技术以[RPC 节点](https://www.alchemy.com/overviews/what-is-an-ethereum-node)的形式得到了应用，这是一种 API，区块链开发者可以通过它与区块链服务器（即节点）进行交互。这样一来，区块链开发者就能够构建需要通过 RPC 节点连接到区块链的 web3 软件，例如[应用](https://www.alchemy.com/dapps/top/defi-dapps)。

在本文中，我们将说明[使用区块链节点提供商](https://www.alchemy.com/overviews/blockchain-node-providers)以及配置备用 RPC 端点的重要性，并介绍需要备用或替代 RPC 端点的各种原因。

此外，如果你希望在现有区块链项目中集成备用 RPC 端点，我们还会介绍设置备用 RPC 端点的几种不同方法。

## 什么是备用 RPC 端点？

备用远程过程调用（RPC）端点是主 RPC 端点出现故障或宕机时使用的备份端点。RPC 端点故障可能导致数千笔甚至数百万笔交易失败。

为此，开发者开始寻找主 RPC 端点故障时的应对方案。其中一种方案是设置备用 RPC 端点，在主 RPC 端点无法正常工作时作为故障保护机制。

备用 RPC 端点与[私有 RPC 端点](https://www.alchemy.com/overviews/private-rpc-endpoint)类似——后者是专供某个应用或钱包使用的专用端点——但两者在实现方式上有所不同。备用 RPC 端点指的是备份端点，而私有 RPC 端点仅表示非公开端点。

## 什么情况下适合使用备用 RPC 端点？

对于区块链开发者来说，备用 RPC 端点有多种潜在用途，从解决[公共 RPC 端点不可靠](https://www.alchemy.com/infura-alternative)的问题，到修复数据不准确等常见交易问题。在本节中，我们将介绍几种备用 RPC 端点可能派上用场的常见情况。

### 1. 主 RPC 提供商宕机

设置备用 RPC 端点的主要用途之一，是在主 RPC 完全宕机、导致支持区块链的软件与区块链失去连接时作为备份方案。如果没有可以立即切换的备用 RPC，这可能导致区块链驱动的软件暂时无法正常运行。

例如，2022 年 7 月，由 Ankr 托管的 Polygon 公共 RPC 端点发生了全网范围的故障，首席信息安全官（CISO）**Mudit Gupta** 建议改用未受此次宕机影响的其他 Polygon RPC 提供商，例如 Alchemy。

<ImageBlock
  src="https://media.alchemy.com/1704096781-mudit-gupta-tweet.png"
  alt="在2022年7月公共 RPC 提供商 Ankr 遭到劫持后,Polygon 建议用户切换到 Alchemy。"
  width={600}
  height={504}
  caption="在2022年7月公共 RPC 提供商 Ankr 遭到劫持后,Polygon 建议用户切换到 Alchemy。"
/>

### 2. 交易无法通过主 RPC 提供商完成

备用 RPC 端点的另一个重要用途，是在主 RPC 端点出现拥堵或响应缓慢、导致交易延迟时作为备份方案。对于高度依赖与区块链即时通信的应用来说，这种情况可能造成严重后果。

在选择备用提供商之前，可以参考 Alchemy 的 [RPC 提供商基准测试](https://www.alchemy.com/benchmarks)，比较当前的延迟和成功率数据。

当交易失败时，使用备用 RPC 端点是确保 web3 用户体验不受不稳定节点影响的有效备份方案。

### 3. 主 RPC 提供商的数据不准确

由于区块链是全球分布式系统，[部分节点提供商返回的区块链数据不准确](https://www.alchemy.com/blog/data-accuracy)，原因在于其节点网络与公共区块链不同步。

当某个节点提供商的服务器集群出现不同步的情况时，用户会收到不准确的数据，例如余额错误、NFT 缺失，整体用户体验变差。

在这种情况下，若在区块链应用中集成了备用 RPC 端点，就可以轻松地从主节点提供商切换到备用节点提供商，以避免返回不准确的数据。

### 4. 主 RPC 提供商不具备可扩展性

最后，当主 RPC 端点在高流量时段（例如代币空投、热门 NFT 发售或激励性链上活动）面临可扩展性方面的挑战时，备用 RPC 端点也能派上用场。

在这种情况下，备用 RPC 端点可以分担高流量，避免主 RPC 端点因扩展性压力而崩溃。

## 应对故障端点的 3 种方法

在处理故障 RPC 端点时，主要有三种解决方法：在同一端点上重试交易、在一系列 RPC 端点之间轮换交易，或更换主 RPC 提供商。

### 1. 在同一 RPC 端点上重试交易

处理故障 RPC 端点的一种方法，是向同一 RPC 端点发送额外的请求。在这种方法中，开发者会以较短的时间间隔反复向同一 RPC 端点发送请求。这种技术最适用于 RPC 端点仅短暂宕机的情况，开发者可以持续发送请求，直到该 RPC 端点恢复上线。

### 2. 在多个 RPC 端点之间轮换

另一种方法是连接一个或多个备用 RPC 端点，并在一系列不同的 RPC 端点之间发送 RPC 请求。通过这种方式，开发者无需在同一端点上反复重试同一笔交易，而是拥有多个可供重试的选项，从而避免单个故障 RPC 端点毁掉整个区块链应用。

如果遇到 RPC 端点故障，使用一系列备用 RPC 提供商的开发者只需连接到其批准列表中的另一个端点即可。

## 如何在 Ethereum 上设置备用 RPC 提供商

由于设置一系列备用 RPC 端点可能颇具挑战，一个更简单的选择——具体取决于你的应用架构——是[将主 RPC 端点替换为更可靠的备用提供商](https://www.alchemy.com/?a=c4273aa140)，例如 Alchemy。

采用这种方法时，你无需在多个不同端点之间轮换，也无需在同一端点上重试交易，而是可以直接用可靠的备用端点 URL 完全替换原有的 RPC 端点 URL。
