Logo
RPC Assistant

以下哪些是以太坊 API?

摘要

以太坊 API 包括标准的 JSON-RPC 方法(eth_*)、用于共识数据的 Beacon REST API,以及客户端内部使用的 Engine API。像 Etherscan 或 Alchemy 这样的特定于提供商的端点不是标准的以太坊 API。本指南帮助您识别什么算作以太坊 API,以及如何可靠地连接。

快速解答:什么算作以太坊 API?

当有人问“哪些是以太坊 API?”时,答案取决于您是指以太坊协议定义的标准接口,还是基础设施提供商添加的额外端点。核心的以太坊 API 包括:

  • 执行层 JSON-RPCeth_* 方法)——用于读取状态、发送交易以及与智能合约交互。
  • Beacon REST API——暴露共识层数据,如时隙、验证者和最终性。
  • Engine API——执行客户端和共识客户端之间的内部接口,不供外部使用。

像 Etherscan 的 ?module=account&action=balance 或 Alchemy 的 alchemy_getAssetTransfers 这样的特定于提供商的端点,在协议意义上不是以太坊 API。它们是构建在区块链之上的便利服务。理解这一区别有助于您为应用程序选择正确的接口,并避免供应商锁定。

决策指南:您应该使用哪个 API?

在编写任何代码之前,决定哪个 API 层符合您的用例。使用此表评估您的选项:

用例推荐 API原因
读取余额、发送交易、调用合约执行层 JSON-RPC所有客户端和提供商支持的标准接口
查询验证者活动、最终性或信标链数据Beacon REST API提供 eth_* 无法获得的共识层数据
实时更新(新区块、待处理交易)WebSocket JSON-RPC支持 eth_subscribe 等订阅
超出默认修剪的历史状态或日志归档节点 JSON-RPC需要 eth_getBalance 在旧区块或 eth_getLogs 在长时间范围内
特定于提供商的功能(代币余额、NFT 元数据)提供商 API(例如 Etherscan、Alchemy)不是标准的,但可以节省开发时间

对于大多数 dApp,您将从通过 HTTPS 的执行层 JSON-RPC 开始。如果您需要实时数据,请添加 WebSocket 连接。如果您正在构建分析或区块浏览器,您可能需要归档访问,可能还需要 Beacon REST API。

什么是以太坊 JSON-RPC API?

以太坊 JSON-RPC API 是一组允许客户端与以太坊网络交互的方法。它遵循 JSON-RPC 2.0 规范,并由所有主要的执行客户端(Geth、Nethermind、Besu、Erigon)实现。方法分为三类:

  • Gossip 方法eth_sendRawTransactioneth_sendTransaction——向网络广播交易。
  • 状态方法eth_getBalanceeth_calleth_getStorageAt——读取当前状态。
  • 历史方法eth_getBlockByNumbereth_getTransactionReceipteth_getLogs——查询历史数据。

以下是一个简单的 curl 示例,用于获取最新区块号:

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

Beacon REST API:共识数据

合并之后,以太坊有两个层:执行层和共识层。Beacon REST API 暴露共识层数据,例如:

  • GET /eth/v1/beacon/genesis – 创世信息
  • GET /eth/v1/beacon/states/{state_id}/validators – 验证者集合
  • GET /eth/v1/beacon/blocks/{block_id} – 信标区块详情

此 API 对于质押仪表板、验证者监控以及需要最终性信息的应用程序很有用。它不是 JSON-RPC 的替代品;它是对其的补充。

Engine API:内部通信

Engine API 是执行客户端和共识客户端之间的 JSON-RPC 接口。它处理区块验证和负载执行。它不适用于外部开发人员,并且很少公开暴露。如果您看到标记为“Engine API”的端点,它可能用于内部节点操作,而不是用于 dApp 开发。

特定于提供商的 API:不是标准的以太坊

像 Etherscan、Alchemy 和 Infura 这样的服务提供它们自己的 API,超出了标准 JSON-RPC。例如:

  • Etherscan APIhttps://api.etherscan.io/api?module=account&action=balance&address=0x... – 返回余额、交易历史和合约 ABI。
  • Alchemy NFT APIalchemy_getNFTMetadata – 获取 NFT 数据。
  • Infura IPFS API:不是以太坊特定的,但一并提供。

这些不是以太坊 API。它们是专有扩展,可能很方便,但它们引入了对特定提供商的依赖。如果您基于它们构建,迁移到另一个提供商可能需要更改代码。

如何连接:使用库和端点

大多数开发人员使用 ethers.js 或 viem 等库,而不是原始 curl。以下是一个使用 viem 的示例:

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

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

const blockNumber = await client.getBlockNumber();
console.log('Current block number:', blockNumber);

在选择 RPC 提供商时,请考虑:

  • 方法支持:它是否支持 eth_getLogseth_call 和归档方法?
  • 速率限制:每秒请求数和每日上限是多少?
  • WebSocket 支持:实时订阅需要。
  • 冗余:提供商是否使用负载均衡的节点?

OnFinality 为以太坊和许多其他网络提供公共和专用 RPC 端点。查看我们的 RPC 定价支持的网络 了解详情。

常见陷阱及如何避免

  • 使用特定于提供商的方法而没有回退:如果您依赖 alchemy_getAssetTransfers,切换提供商时您的应用会中断。尽可能坚持使用标准方法。
  • 忽略区块参数eth_getBalance 需要区块参数。使用 "latest" 可能无法提供历史数据;使用 "earliest" 或特定的区块号。
  • 假设所有提供商都支持归档数据:并非所有提供商都支持。如果您需要历史状态,请验证归档支持。
  • 忘记用于实时的 WebSocket:HTTP 是请求-响应;WebSocket 允许订阅。使用 eth_subscribe 订阅待处理交易。

关键要点

  • 标准的以太坊 API 是执行层 JSON-RPC、Beacon REST 和 Engine API。
  • 特定于提供商的 API 不是以太坊 API;它们是专有扩展。
  • 根据您的用例选择 API:状态、历史、实时或共识数据。
  • 使用 viem 或 ethers.js 等库来简化开发。
  • 评估 RPC 提供商的方法支持、速率限制、WebSocket 和归档数据。

常见问题解答

Etherscan API 是以太坊 API 吗?

不是,Etherscan API 是一个专有 API,提供来自以太坊区块链的数据。它不是标准以太坊 API 集的一部分。

JSON-RPC 和 REST API 有什么区别?

JSON-RPC 是一种使用 JSON 进行远程过程调用的协议,通常通过 HTTP 或 WebSocket。REST 是一种架构风格。以太坊的标准 API 是 JSON-RPC,而不是 REST。

我可以将 WebSocket 用于以太坊 API 吗?

可以,许多提供商提供用于实时订阅的 WebSocket 端点。使用 eth_subscribe 监听新区块或待处理交易。

我需要 API 密钥才能使用以太坊 API 吗?

公共端点可能不需要密钥,但对于生产环境,您需要具有 API 密钥的托管服务,以获得更高的速率限制和可靠性。

什么是归档节点?

归档节点存储完整的状态历史,允许在任何过去的区块进行查询。对于分析和历史数据是必要的。

后续步骤

既然您知道哪些 API 是以太坊 API,您就可以开始构建了。如果您需要可靠的 RPC 提供商,请探索 OnFinality 的 API 服务,或考虑使用 专用节点 用于高吞吐量应用程序。有关更广泛的视图,请参阅我们的 选择 RPC 提供商指南

RPC 知识库

相关 RPC 内容

Rpc Provider Selection

Sui RPC 节点:端点设置、提供商选择与最佳实践

Sui RPC 节点是一个 API 端点,允许您的应用程序在不运行自己的全节点的情况下读取和写入 Sui 区块链。本文介绍如何连接到 Sui RPC 端点、选择提供商时需要注意的事项,以及生产环境中应避免的常见陷阱。...

Network Rpc

什么是 Arbitrum RPC 端点,如何使用它?

Arbitrum RPC 端点允许钱包和 dApp 在 Arbitrum One、Arbitrum Nova 和 Arbitrum Sepolia 上读写数据。本指南涵盖官方公共端点、链设置、如何使用 curl 或 ethers 连接,以及如何为生产环境选择可靠的提供商。...

Network Rpc

什么是 BNB RPC 节点,如何连接到 BNB 智能链?

BNB RPC 节点是暴露 BNB 智能链 JSON-RPC API 的服务器,让钱包、dApp 和索引器读取链上状态并提交交易。本指南解释了公共端点和私有端点之间的区别,如何为你的应用配置主网和测试网,以及为生产工作负载选择基础设施时需要注意什么。...

Rpc Provider Selection

什么让 Solana 验证者 API 对生产服务可靠?

验证者运营者和质押服务需要在高负载下保持可用、返回一致状态、并处理交易提交而不出现静默失败的 API。本文解释了 Solana 验证者 API 的核心可靠性要求,如何评估提供商,以及在将 RPC 服务集成到验证者操作之前需要检查什么。...

Testnet Rpc

Polygon Amoy 测试网 RPC:端点、链设置和连接方法

Polygon Amoy 是 Polygon PoS 的官方测试网,取代了已弃用的 Mumbai 网络。本文提供链设置、公共 RPC 端点以及连接 dApp 或钱包的实用指南,并附有选择可靠 RPC 提供商进行开发和测试的技巧。...

Network Rpc

关于SORA网络RPC端点,我需要了解什么?

SORA是一个基于Substrate的区块链货币系统,为数字货币提供去中心化框架。在SORA上构建的开发者需要可靠的RPC端点来读取链上数据、提交交易以及与Polkaswap DEX交互。本指南涵盖主网和Taira测试网的链设置、公共和专用RPC选项、水龙头详情以及常见调试技巧。...

永远不用担心基础设施

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

开始