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

Alchemy RPC:它是什么以及如何为生产应用评估它

摘要

Alchemy RPC 是一种托管的 JSON-RPC 服务,它让你的应用连接到区块链节点,而无需你自己运行节点。你在 Alchemy 仪表板中创建一个应用,获得一个限定到某个网络的 HTTPS 端点(通常还有 WebSocket 端点),然后向该 URL 发送标准 JSON-RPC 调用,例如 eth_call、eth_getLogs 或 eth_sendRawTransaction。Alchemy 还在原始 RPC 之上叠加了产品功能,包括增强 API、webhooks 和账户工具。

大多数搜索“Alchemy RPC”的开发者试图回答三个实际问题之一:我如何获取端点并调用它,托管服务有哪些限制或功能,以及它是否适合我的工作负载。本页按此顺序回答这些问题,然后提供一个评估清单,你可以将其应用于 Alchemy 或任何其他 RPC 提供商,包括 OnFinality 的 RPC API 服务 和 专用节点。

提前说明:定价层级、速率限制和支持的网络经常变化。将你在第三方博客上看到的任何数字视为起点,并在承诺之前确认提供商自己的定价和文档页面上的当前详细信息。

关键要点

  • Alchemy RPC 是一个托管的 JSON-RPC 网关:你获得每个应用、每个网络的 URL,并对其调用标准的以太坊风格方法。
  • 端点 URL 是集成点,因此切换提供商通常是配置更改而非代码重写——如果你将 URL 保存在一个地方。
  • 评估任何 RPC 提供商时,关注方法覆盖(归档、追踪、日志)、传输支持(HTTPS 与 WebSocket)、吞吐量限制以及故障如何呈现。
  • 托管 RPC 是最快的起步方式;当你需要可预测的容量或与其他客户隔离时,专用节点更有意义。
  • OnFinality 在许多网络上提供 RPC API 和专用节点基础设施,因此你可以按照与 Alchemy 相同的标准进行比较。
  • 在承诺之前,始终在提供商自己的页面上确认当前定价、速率限制和网络支持。

Alchemy RPC 端点如何实际融入你的应用

RPC 端点只是一个接受 JSON-RPC 负载的 HTTP(或 WebSocket)URL。在 Alchemy 设置中,你注册、创建应用、选择网络,Alchemy 会发放一个嵌入了你的 API 密钥的 URL。然后你的应用向该 URL 发送诸如 eth_blockNumber 或 eth_getBalance 的请求。提供商在后台处理节点操作、同步和路由。

这意味着集成面很小。大多数库——ethers、viem、web3.js 或原始 fetch 调用——接受一个 URL 和一个链 ID,然后完成其余工作。实际结果是,你的提供商选择主要是一个配置决策,而不是架构决策,前提是你将端点保存在一个地方。

  • HTTPS 端点:用于请求/响应调用,例如读取、gas 估算和交易提交。
  • WebSocket 端点:用于订阅,例如新区块、待处理交易或日志。
  • API 密钥:嵌入在 URL 中或作为标头发送;将其视为机密,尽可能不要放在客户端捆绑包中。
  • 网络选择:每个应用通常限定到一个网络,因此多链应用持有多个端点。

快速建议:何时 Alchemy RPC 是合理的默认选择

如果你在原型设计、运行黑客松项目或在主要 EVM 链上发布小型 dApp,像 Alchemy 这样的托管 RPC 提供商通常是最快的路径。你可以在几分钟内获得端点、常见方法的文档以及用于密钥和使用的仪表板。

一旦你有生产流量,决策就变得更有趣。此时问题不是“它是否工作”,而是“它在我的工作负载下是否表现可预测”。使用下面的清单来决定是留在共享托管层级、在同一提供商内升级,还是评估替代方案,例如 OnFinality 的托管 RPC 和专用节点。

标准检查内容为什么重要
原型或小型 dApp免费层级限制、支持的网络、文档质量托管 RPC 在你验证产品时将节点操作从关键路径中移除
生产读取流量吞吐量限制、缓存选项、多区域行为读取密集型应用在流量高峰时可能触及共享限制
归档或追踪查询归档数据和追踪/调试方法是否包含在你的计划中历史余额和交易追踪通常需要归档节点,并且经常受到限制
实时功能WebSocket 订阅支持和连接限制实时仪表板和机器人依赖稳定的订阅,而不是轮询
可预测的容量专用节点选项和与其他客户的隔离吵闹邻居效应是共享层级上不明原因延迟的常见原因

针对 Alchemy 风格端点的最小调用

请求形状是标准 JSON-RPC,因此一旦你替换 URL,相同的代码可以在任何兼容的提供商上工作。下面的示例使用占位符 URL;将其替换为你提供商仪表板中的端点。

  • curl -X POST "$RPC_URL" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
  • 在 viem 中:createPublicClient({ transport: http(process.env.RPC_URL) }) 然后 client.getBlockNumber()。
  • 在 ethers 中:new JsonRpcProvider(process.env.RPC_URL) 然后 provider.getBlockNumber()。
  • 将 RPC_URL 保存在环境变量中,以便切换提供商只需一行更改。

托管 RPC 计划通常在哪里划线

大多数托管 RPC 提供商(包括 Alchemy)围绕计算单元或请求计数构建计划,并带有方法级权重。便宜的方法如 eth_blockNumber 成本低;昂贵的方法如跨宽区块范围的 eth_getLogs 或追踪调用成本更高。理解这种权重比标题请求限制更重要。

另一个常见边界是数据范围。归档数据、调试/追踪 API 和大日志查询通常限制在更高层级或需要显式启用。如果你的应用依赖历史状态或交易追踪,在围绕它们构建之前,确认这些方法在你的计划中可用。

标准检查内容为什么重要
方法典型成本概况加权计费意味着几个重调用可能主导你的使用量
eth_blockNumber / eth_chainId低权重,通常在所有地方都包含健康检查和简单读取很少是瓶颈
eth_getLogs范围限制和每个区块跨度的权重索引器和分析作业可能快速耗尽配额
debug_traceTransaction按计划和网络的可用性追踪成本高昂,通常限制在更高层级
eth_getBalance(历史区块)归档节点要求非归档节点无法回答历史状态查询

承诺前的生产就绪清单

使用此列表在平等基础上将 Alchemy 与任何替代方案进行比较。它故意保持提供商中立,因此你也可以将其应用于 OnFinality 的 RPC API 或 专用节点。

  • 方法覆盖:确认目标网络上的归档、追踪和日志查询支持。
  • 传输:如果你需要订阅,验证 WebSocket 可用性和连接限制。
  • 故障行为:了解过载端点返回什么(HTTP 429、JSON-RPC 错误或超时)以及你的客户端如何重试。
  • 可观测性:检查仪表板是否暴露每个方法的使用情况和错误率。
  • 故障转移:决定你是否需要辅助提供商或专用节点作为后备。
  • 退出成本:将端点保存在配置中,以便迁移是 URL 交换,而不是重构。

何时从共享 RPC 迁移到专用基础设施

共享托管 RPC 效率高,因为许多客户共享一个节点池。这没问题,直到你的工作负载对其他客户的流量变得敏感,或者你需要共享池无法提供的保证。是时候考虑专用节点的迹象包括持续高请求量、交易或实时用户体验的严格延迟要求,以及在发布期间需要隔离容量。

OnFinality 同时提供托管 RPC 端点和专用节点基础设施,因此你可以从共享端点开始,将特定工作负载迁移到专用节点,而无需更改应用代码。查看 RPC 定价 和 支持的网络 以了解适合你技术栈的内容。

标准检查内容为什么重要
信号共享 RPC专用节点
流量模式稳定、中等量突发或持续高量且容量需求可预测
延迟敏感性一般用户体验容忍偶尔变化交易、清算或实时仪表板需要稳定的响应时间
隔离可接受共享节点池工作负载不得受其他客户影响
成本模型按请求或计算单元付费固定基础设施成本在规模上更容易预测

切换提供商时的迁移检查点

由于集成面是一个 URL,切换 RPC 提供商通常很简单。风险在于细节:方法差异、错误格式和订阅行为。在切换之前运行这些检查点。

  • 清点你的应用调用的每个 RPC 方法,包括后台作业和索引器。
  • 针对你最重的查询测试新端点,尤其是 eth_getLogs 范围和追踪调用。
  • 确认 WebSocket 订阅行为和连接断开时的重连逻辑。
  • 比较速率限制和无效参数的错误响应,以便你的重试逻辑仍然有效。
  • 在一段时间内并行运行两个端点,并比较相同区块上的结果。
  • 将旧端点配置为后备,直到新端点在 production 中证明稳定。

常见问题

Alchemy RPC 免费使用吗?

Alchemy 提供有使用限制的免费层级,以及更高量和附加功能的付费计划。确切的限制和定价会随时间变化,因此在围绕特定层级规划之前,请查看 Alchemy 当前的定价页面。

Alchemy RPC 和运行自己的节点有什么区别?

像 Alchemy 这样的托管 RPC 服务为你操作节点、同步和可用性,你按使用量或计划付费。运行自己的节点给你完全的控制和隔离,但需要持续的运营、存储和监控工作。

我可以将 Alchemy RPC 与 ethers 或 viem 一起使用吗?

是的。Alchemy 端点使用标准 JSON-RPC,因此任何接受 RPC URL 的库都可以工作。你将端点 URL 和链 ID 传递给库的 provider 或 transport 构造函数。

Alchemy RPC 支持 WebSocket 订阅吗?

Alchemy 为支持的网络提供 WebSocket 端点,你用于订阅如 new heads 或 logs。可用性和限制取决于你的计划和网络,因此在仪表板中确认。

OnFinality 与 Alchemy 在 RPC 方面如何比较?

两者都提供托管 JSON-RPC 访问。OnFinality 还在支持的网络中提供专用节点基础设施,当你需要隔离容量时很有用。根据你的具体工作负载,在方法覆盖、传输支持、限制和定价方面进行比较。

如何从 Alchemy 切换到另一个 RPC 提供商?

将你的 RPC URL 保存在环境变量中,将其指向新提供商的端点,并在切换之前测试你最重的方法。短暂并行运行两个端点,以捕捉方法或错误格式的差异。

RPC 知识库

相关 RPC 内容

网络 RPCSolana

什么是 Solana 的 RPC?如何选择合适的端点?

Solana RPC 端点让您的 dApp 读取链上状态、提交交易并订阅实时更新。本指南解释 Solana RPC 如何工作、如何连接公共和专用端点,以及在生产环境选择基础设施时应评估哪些因素。...

网络 RPCArbitrum

Arbitrum API 概览:RPC 端点、链设置与生产环境配置

Arbitrum API 是一个 JSON-RPC 接口,可让您的应用在 Arbitrum One(链 ID 42161)和 Arbitrum Sepolia(链 ID 421614)上读取状态并提交交易。您只需将 HTTP 或 WebSocket 客户端指向 Arbitrum RPC 端点,并调用...

网络 RPCBNB Chain

如何使用类似 Chainlist 的目录来查找支持的 RPC 网络和端点?

类似 Chainlist 的目录的存在是为了解决一个问题:将链 ID 映射到可用的 RPC 端点,以便钱包和 dApp 无需猜测即可连接。本文解释了这些目录的结构、如何读取它们公开的网络元数据,以及如何在你将其部署到生产环境之前验证端点。 它还涵盖了公共目录端点在哪些情况下不再足够、当列出的端点失败...

区块链基础设施

什么是区块链节点基础设施,何时应租用而不是自行运行?

区块链节点基础设施是维持区块链网络运行的硬件、软件和网络。它包括全节点、归档节点和验证器,每种都有不同的存储和计算需求。运行自己的节点可以让你掌控一切,但也带来了同步、监控和扩展等运维负担。像 OnFinality 这样的托管 RPC 服务提供了可靠的节点基础设施访问,而无需自行托管的负担。...

网络 RPCBNB Chain

如何查找和配置 BNB Smart Chain 端点?

BNB Smart Chain(BSC)公开了 JSON-RPC 端点,用于读取区块链数据和发送交易。mainnet 端点是 https://bsc-dataseed.bnbchain.org,chain ID 为 56;testnet 端点使用 chain ID 97。公共端点适合原型开发,但存在...

网络 RPCSolana

Solana RPC 端点:如何连接、配置和调试

Solana RPC 端点是您的 dApp 或验证器用来向 Solana 网络发送 JSON-RPC 请求的 URL。本页介绍主网和开发网端点、如何在代码中配置它们,以及如何调试常见的连接问题。对于生产环境的工作负载,OnFinality 提供的托管或专用 RPC 端点可提供可靠性和可扩展性。...

永远不用担心基础设施

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

开始