Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

以太坊 RPC 列表:如何为你的应用选择正确的端点

摘要

以太坊 RPC 列表是一组端点,让你的 dApp 能够在以太坊上读写数据。选择正确的端点取决于你的工作负载:公共端点适合测试,而生产应用需要托管或专用基础设施。本指南解释了 RPC 端点的类型、如何评估它们,以及如何使用流行工具进行连接。

当你搜索“以太坊 RPC 列表”时,你可能正在寻找一组可以插入钱包、dApp 或后端服务的端点。列表本身只是答案的一半:更重要的问题是哪种类型的端点适合你的用例。本指南将介绍以太坊 RPC 端点的主要类别、在提交之前需要检查的内容,以及如何使用常见工具进行连接。

快速建议:将端点与你的工作负载匹配

在将 URL 复制到配置之前,请考虑你的应用实际需要什么。公共端点适合黑客松或本地脚本,但无法承受生产流量。托管 RPC 服务提供可靠性和可扩展性,而无需运维开销。专用节点为高负载或敏感工作负载提供完全控制和隔离。

工作负载推荐的端点类型原因
原型开发、测试、低流量公共端点免费、无需设置,但有限速且通常不可靠
生产 dApp、中等流量托管 RPC(共享)性能、可扩展性和支持均衡
高吞吐量、归档数据、trace 调用专用节点完全控制、无噪声邻居、自定义配置
合规、数据隐私、自定义逻辑专用节点你拥有基础设施,可以审计一切

如果你不确定,可以从 OnFinality 的 以太坊 RPC 等托管 RPC 服务开始,并在达到其限制时扩展到 专用节点。查看 RPC 定价 以了解你需要支付什么。

什么是以太坊 RPC 端点?

以太坊节点通过 HTTP 或 WebSocket 暴露 JSON-RPC API。RPC 端点只是该 API 可用的 URL。例如,OnFinality 的公共以太坊端点是 https://eth.api.onfinality.io/public。你向此 URL 发送 JSON-RPC 请求以读取区块链数据、估算 gas 或提交交易。

以太坊 JSON-RPC 规范定义了诸如 eth_blockNumber、eth_getBalance、eth_call 和 eth_sendRawTransaction 等方法。每个以太坊节点都实现这些方法,但端点的质量——速度、可靠性和数据深度——差异很大。

以太坊 RPC 端点的类型

公共端点

公共端点是免费的,对任何人开放。它们非常适合学习和快速测试,但带有明显的缺点:

  • 速率限制:在达到一定请求数后,你可能会被限制或阻止。
  • 可用性:它们可能在没有通知的情况下宕机。
  • 数据限制:通常只有最近的状态,而不是完整的归档数据。
  • 无支持:如果出现问题,你需要自己解决。

托管 RPC 服务

托管服务为你运行以太坊节点,并通过可靠的 API 暴露它们。它们处理基础设施、监控和扩展。例如,OnFinality 提供全球以太坊节点网络,支持 HTTP 和 WebSocket。你获得稳定的端点、清晰的 定价 以及对 支持的网络 的访问。

专用节点

专用节点为你提供以太坊节点的私有实例。你可以独占访问节点资源,这意味着没有共享使用的速率限制,也没有“噪声邻居”效应。这非常适合高吞吐量应用、归档数据需求或需要自定义节点配置的情况。

如何评估以太坊 RPC 提供商

在比较提供商时,不要只看端点 URL。以下是关键标准:

标准检查内容为什么重要
正常运行时间和可靠性历史正常运行时间、SLA宕机意味着你的应用不可用
吞吐量和延迟响应时间、请求限制慢速 RPC 会使你的 UI 反应迟钝
数据可用性归档数据、trace 支持分析和调试需要
传输支持HTTP、WebSocket实时更新需要 WebSocket
安全性身份验证、TLS保护你的 API 密钥和数据
支持文档、SLA帮助你快速解决问题
定价模式免费层、按需付费、专用必须适合你的预算和规模

OnFinality 的 以太坊 RPC 提供具有全球覆盖的托管端点,你可以升级到 专用节点 以获得完全控制。

连接到以太坊 RPC 端点

使用 curl

你可以使用简单的 curl 请求测试任何以太坊 RPC 端点。以下是一个获取最新区块号的示例:

curl -X POST https://eth.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

使用 ethers.js

在 JavaScript 项目中,你可以使用 ethers.js 连接到以太坊 RPC 端点:

const { ethers } = require("ethers");

const provider = new ethers.JsonRpcProvider("https://eth.api.onfinality.io/public");

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log("Latest block:", blockNumber);
}

getBlockNumber();

使用 viem

Viem 是另一个流行的库。以下是如何设置公共客户端:

import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';

const client = createPublicClient({
  chain: mainnet,
  transport: http('https://eth.api.onfinality.io/public'),
});

const blockNumber = await client.getBlockNumber();
console.log(blockNumber);

钱包配置

如果你要将以太坊添加到像 MetaMask 这样的钱包,你需要链 ID(1)和 RPC URL。使用可靠的端点,如 https://eth.api.onfinality.io/public 作为网络。

常见陷阱及如何避免

速率限制

公共端点通常在你超过限制时返回 429 Too Many Requests。为避免这种情况,请使用具有更高限制的托管服务,或实现带有指数退避的重试逻辑。

WebSocket 与 HTTP

如果你的应用需要实时更新(例如,新区块、待处理交易),你需要 WebSocket 端点。HTTP 适用于一次性请求。OnFinality 在以太坊上同时支持 HTTP 和 WebSocket。

归档数据

许多端点只保留最近的状态。如果你需要历史数据(例如,用于分析),你需要一个归档节点。OnFinality 在其托管和专用节点上提供归档数据。

安全性

切勿在客户端代码中暴露你的 API 密钥。使用环境变量,并在必要时通过后端代理请求。

何时从公共迁移到托管或专用

如果你正在构建生产应用,你不应依赖公共端点。需要升级的迹象包括:

  • 你的应用频繁遇到速率限制错误。
  • 你需要为全球用户提供一致的低延迟。
  • 你需要归档数据或 trace 方法。
  • 你需要 WebSocket 连接以实现实时功能。
  • 你想要服务级别协议和支持。

OnFinality 的 托管 RPC 是一个很好的中间选择。为了获得最大性能和控制,请考虑 专用节点。

关键要点

  • 以太坊 RPC 列表只是一个起点;真正的决定是使用哪种类型的端点。
  • 公共端点适合测试,但不适合生产。
  • 托管 RPC 服务在可靠性、可扩展性和支持之间提供了平衡。
  • 专用节点提供完全控制,最适合高吞吐量或专业需求。
  • 根据正常运行时间、吞吐量、数据可用性、传输、安全性和支持来评估提供商。
  • 始终使用安全连接并保护你的 API 密钥。

常见问题解答

HTTP 和 WebSocket RPC 端点有什么区别?

HTTP 端点是请求-响应模式,适用于一次性查询。WebSocket 端点保持持久连接,允许服务器推送更新,这对于实时应用至关重要。

我可以在生产环境中使用公共以太坊 RPC 端点吗?

不建议。公共端点有限速,并且可能不可靠。对于生产环境,请使用托管服务或专用节点。

什么是归档节点?

归档节点存储区块链的完整历史,允许你查询任何区块的历史状态。这对于分析、调试和合规很有用。

如何获得专用以太坊节点?

你可以从像 OnFinality 这样的提供商处获得专用节点。访问 专用节点页面 了解更多信息并请求一个。

以太坊的链 ID 是多少?

以太坊主网的链 ID 是 1。这用于防止不同网络之间的重放攻击。

如何测试以太坊 RPC 端点?

你可以使用 curl 或像 ethers.js 这样的库发送简单请求,例如 eth_blockNumber,以验证端点是否正常工作。

OnFinality 是否支持以太坊测试网?

是的,OnFinality 支持以太坊 Sepolia。你可以在 Sepolia 网络页面 上找到端点。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

是什么让 Solana RPC 变快,以及如何为你的应用选择最快的 RPC?

Solana 的性能要求低延迟的 RPC 基础设施。最适合你的用例的最快 RPC 取决于工作负载类型、地理邻近性以及你是否需要共享或专用资源。本文解释了影响 Solana RPC 速度的关键因素以及如何评估提供商。...

网络 RPCArbitrum

关于 Arbitrum RPC 端点,我需要了解什么?

# 关于 Arbitrum RPC 端点,我需要了解什么? Arbitrum RPC 端点至关重要,因为 Web3 应用程序依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配您的工作负载,支持您所需的网络和测试网,使限制可见,并在共享 RPC 不再足够时为您提供扩展路径。 对于...

网络 RPCOptimism

Optimism Nodes: Public, Managed, or Self-Hosted?

Optimism nodes are the software clients that let you read and write data on OP Mainnet, the leading Ethereum Layer 2. You can run your own node for fu...

RPC 提供商选择Solana

具有高级索引功能的Solana RPC提供商:应关注什么

Solana RPC提供商的高级索引功能超越了基本交易获取,能够高效查询历史数据、代币余额和程序状态。本文解释了需要评估的关键索引能力,例如getSignaturesForAddress、getTokenAccountsByOwner和增强过滤,以及它们如何影响您的dApp性能和用户体验。我们比较了...

测试网 RPCBase

什么是 Base Sepolia,什么时候应该使用它?

Base Sepolia 是 Base 的测试网,Base 是一个基于 OP Stack 构建的以太坊 Layer 2。它镜像了 Base 主网的 EVM 行为,链 ID 为 84532,使用测试 ETH,因此你可以在不触及真实资金的情况下部署合约、测试交易和演练升级。对于在 Base 上构建的团队...

网络 RPCAvalanche

什么是 Crust Network,它如何提供去中心化存储?

Crust Network 是一个基于 Substrate 的第 1 层区块链,为 IPFS 添加了激励和服务层,实现去中心化、可验证和永久存储。它提供链上存储市场、跨链互操作性以及供开发者将去中心化存储集成到 dApp 中的工具。...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始