跳至内容
0%

Google Cloud Blockchain Node Engine 替代方案:如何迁移到 Alchemy

发布于 2026年10月13日4 分钟阅读

从 Google Cloud Blockchain Node Engine 迁移到 Alchemy 的标题卡

Google Cloud 将于 2026 年 12 月 15 日下线 Blockchain Node Engine 及其共享的 Blockchain RPC 服务。迁移到 Alchemy 只需更换 URL,无需重写代码。替换端点和 API key 之后,同样的 JSON-RPC 调用会返回同样的数据。

迁移也会改变你需要负责的范围。Blockchain Node Engine 为你提供三条链上的节点,按小时计费。我们则提供一个可在 100 多条链上通用的 API key,无需配置或升级任何节点。本指南介绍如何获取端点、如何把查找替换工作交给编码代理、Google Cloud 配置中的每个部分迁移后对应什么、如何证明新端点返回完全相同的数据,以及两者的成本对比。

12 月 15 日会发生什么变化?

根据 Google 的 Blockchain Node Engine 关停通知,2026 年 12 月 15 日,Google 会删除所有剩余的 Blockchain Node Engine 节点和 Blockchain RPC 端点,发往它们的任何请求都会失败。在此之前,你已经无法创建新的节点或端点。如果某个节点同步落后或流量增长,只能换到其他服务商去解决。

Blockchain Node Engine 运行的节点覆盖 Ethereum(主网,以及 Sepolia、Holesky 和 Goerli 测试网)、Polygon PoS 和 Solana,Blockchain RPC 则服务于 Ethereum。这些链我们都已支持,因此你目前在 Google Cloud 上运行的每个工作负载,在 Alchemy 上都有对应的端点,详见下文的对应关系一节。

迁出时有一个计费细节需要注意。Blockchain RPC 端点由 Google 自行移除,但 Blockchain Node Engine 节点必须由你在 Google Cloud 控制台中删除,删除之前会一直计费。

请把 12 月 15 日视为这些 URL 失效的日子,并争取提前数周将生产流量迁出。

如何获取 Alchemy 端点?

在 Alchemy 控制台注册,创建一个应用,并启用你在 Google Cloud 上使用的网络。每个网络都有自己的 URL,同一个应用的 API key 可用于所有这些网络。

如果你更习惯留在终端里,Alchemy CLI 只需几条命令就能完成登录、创建应用并发起第一次测试调用:

bash
Copied
npm i -g @alchemy/cli@latest alchemy auth # browser sign-in alchemy app create --name gcp-migration --networks ETH_MAINNET alchemy app select <app-id> # use the new app's key alchemy evm block latest -n eth-mainnet # confirm the endpoint answers

在没有浏览器的远程服务器上,请改用 alchemy auth login --device-code。alchemy app chains 会列出你可以添加到应用中的所有其他网络的标识符,例如 Polygon 和 Solana。

编码代理能替你完成迁移吗?

可以。当端点 URL 分散在多个服务和配置文件中时,这是最快的方式。我们提供三款工具,为编码代理(Claude Code、Cursor、Codex 或类似工具)提供所需的一切:

  • Alchemy CLI 负责执行命令:创建应用、设置白名单,以及对每个网络发起测试调用。
  • Alchemy Agent Skills 让代理掌握我们的端点格式、方法和 CLI 用法。使用 alchemy install skills 安装。
  • Alchemy MCP server 让代理可以直接访问 100 多个网络的链上数据,因此它在工作时就能查询你正在迁移的网络。它托管在 https://mcp.alchemy.com/mcp,通过你的 Alchemy 账户登录,无需粘贴 API key。使用 alchemy install mcp 添加,或在 Claude Code 中运行:
bash
Copied
claude mcp add alchemy --transport http https://mcp.alchemy.com/mcp

在 Claude Code 上,Alchemy 的 Claude Code 插件可以一步安装 skills 和 MCP server,使用 Alchemy 配置 Claude Code 一文详细介绍了整个配置过程。

然后在仓库根目录下,给代理一段类似下面的提示词。它会先收集你的相关信息,并在修改文件前等待你的批准:

text
Copied
I'm moving this project off Google Cloud Blockchain Node Engine and Blockchain RPC, which shut down on December 15, 2026. The new provider is Alchemy. Use the Alchemy CLI, Alchemy skills, and the Alchemy MCP server. Before changing anything, ask me: - which networks we run on, and whether any Google Cloud node was an archive node - where our secrets live (env files, a secrets manager, CI variables) - whether the new Alchemy app needs IP or origin allowlists Then find every Google Cloud blockchain endpoint and every use of the Google API key (X-goog-api-key headers or ?key= parameters) across code, config, CI, Docker, and infrastructure files. Show me the list with file paths and wait. After I approve, replace each endpoint with an environment variable that holds the Alchemy URL for that network, remove the Google key handling, and add placeholder entries to .env.example. Never commit a real API key. Finally, run eth_chainId and eth_blockNumber against every migrated network with the Alchemy CLI and report the results.

最终你只需审阅一份清单和一份 diff,而不必手动搜索每个仓库。如果你更愿意手动修改,工作内容也是一样的:搜索 Google 端点的主机名和 API key,为每个网络换上对应的 Alchemy URL,并移除 key 的请求头或查询参数,因为我们的 key 位于 URL 路径中。还要检查端点容易藏身的地方,例如 CI 变量、Terraform 和定时任务。

Google Cloud 配置的各个部分迁移后对应什么?

大部分对应关系是一对一的,还有一些工作会彻底消失。

Google Cloud 上
Alchemy 上

Blockchain RPC 共享端点(仅限 Ethereum)

100 多条链中任意一条链上的 RPC API 端点

Blockchain Node Engine 全节点

同一网络的标准端点,无需运行节点

Blockchain Node Engine 归档节点

同一个标准端点,同时提供历史状态

用于单租户隔离的专用节点

Alchemy Dedicated Clusters

放在请求头或查询参数中的 Google Cloud API key

位于 URL 路径中的 API key

API key 限制和 VPC Service Controls

每个应用上的 IP 白名单和 origin 白名单

Goerli 和 Holesky 测试网

Sepolia 和 Hoodi

每次硬分叉前的节点升级

由我们负责

我们的 RPC API 覆盖共享端点以及全节点和归档节点的场景。如果你当初选择 Blockchain Node Engine 是为了单租户隔离,Alchemy Dedicated Clusters 可以为你的工作负载提供专属容量,而如何在 Node RPC 和 Dedicated Clusters 之间做选择一文解释了什么情况下值得这样做。白名单可以在控制台中设置,也可以在 CLI 中通过 alchemy app ip-allowlist 和 alchemy app origin-allowlist 设置。

以下是 Blockchain Node Engine 所支持的每个网络对应的端点,以环境变量形式列出:

bash
Copied
# Ethereum ETH_MAINNET_URL=https://eth-mainnet.g.alchemy.com/v2/<your-key> ETH_SEPOLIA_URL=https://eth-sepolia.g.alchemy.com/v2/<your-key> ETH_HOODI_URL=https://eth-hoodi.g.alchemy.com/v2/<your-key> ETH_MAINNET_BEACON_URL=https://eth-mainnetbeacon.g.alchemy.com/v2/<your-key> # Polygon PoS POLYGON_MAINNET_URL=https://polygon-mainnet.g.alchemy.com/v2/<your-key> POLYGON_AMOY_URL=https://polygon-amoy.g.alchemy.com/v2/<your-key> # Solana SOLANA_MAINNET_URL=https://solana-mainnet.g.alchemy.com/v2/<your-key>

如需使用 WebSocket,将 https:// 替换为 wss:// 即可。Beacon 端点适用于曾在自己的 Ethereum 节点上查询共识层的团队。

有几个网络细节值得核对。Goerli 的流量迁往 Sepolia,Holesky 的流量迁往 Hoodi(我们目前仍提供 Holesky)。在 Polygon 上,如果你曾在归档节点上使用特定追踪器调用 debug 方法,请在我们的 Debug API 文档中确认该追踪器。在 Solana 上,标准 JSON-RPC 方法可以在我们的端点上原样使用;如需实时数据,可以用 Solana gRPC 流式传输替代轮询。

如何证明新端点返回的数据完全相同?

在迁移任何生产流量之前,先运行一致性校验。下面的脚本会从两个服务商读取同一个已最终确认的区块和同一笔历史余额,并比较结果。脚本使用 viem,但任何 JSON-RPC 客户端都可以。

typescript
Copied
import { createPublicClient, http } from "viem"; import { mainnet } from "viem/chains"; const { GCP_ETH_RPC_URL, GCP_API_KEY, ETH_MAINNET_URL, CHECK_ADDRESS } = process.env; // Fail fast: viem's http() silently falls back to a public RPC when the URL is undefined. if (!GCP_ETH_RPC_URL || !ETH_MAINNET_URL || !CHECK_ADDRESS) { throw new Error("Set GCP_ETH_RPC_URL, ETH_MAINNET_URL, and CHECK_ADDRESS first"); } const address = CHECK_ADDRESS as `0x${string}`; const google = createPublicClient({ chain: mainnet, transport: http(GCP_ETH_RPC_URL, { fetchOptions: { headers: { "X-goog-api-key": GCP_API_KEY ?? "" } }, }), }); const alchemy = createPublicClient({ chain: mainnet, transport: http(ETH_MAINNET_URL), }); async function main() { // 64 blocks back is past Ethereum finality, so both sides must agree. const head = await alchemy.getBlockNumber(); const blockNumber = head - 64n; const [a, b] = await Promise.all([ google.getBlock({ blockNumber }), alchemy.getBlock({ blockNumber }), ]); console.log(`block ${blockNumber} hash match:`, a.hash === b.hash); // Archive check. Skip this part if your Google Cloud node was a full node. const oldBlock = 15_000_000n; const [balA, balB] = await Promise.all([ google.getBalance({ address, blockNumber: oldBlock }), alchemy.getBalance({ address, blockNumber: oldBlock }), ]); console.log(`balance at block ${oldBlock} match:`, balA === balB); } main();

对每个要迁移的网络都运行一次,并使用你的应用实际会查询的地址。如果已最终确认区块的哈希不一致,说明某处配置有误,通常是网络 URL 填错了,请先修正再继续。

校验通过后,借助功能开关或加权路由分阶段迁移流量,并在 12 月之前保留 Google Cloud 端点作为回退。如何在 RPC 服务商之间零停机迁移详细介绍了分阶段切换的做法,包括迁移后保留一个备用 RPC 端点。流量全部切换完成后,在 Google Cloud 控制台中删除你的 Blockchain Node Engine 节点,以停止计费。

迁移之后可以从技术栈中移除哪些部分?

Blockchain Node Engine 提供的是原始节点,因此 JSON-RPC 之上的一切都是你的团队自己编写和维护的代码。更换服务商正是淘汰其中一部分的好时机。

  • 交易历史索引器。如果你通过扫描区块或日志来重建某个地址的历史记录,Transfers API 一次调用即可返回这些历史,无需自己为整条链建立索引。
  • 用于检测充值的轮询循环。通过轮询新区块来捕获入账转账的代码,可以替换为 Address Activity webhooks,每个 webhook 可为多达 100,000 个地址推送转账事件。
  • 逐链配置。在 Blockchain Node Engine 上,添加 Base、Arbitrum 或 Optimism 从来都不是可选项。在 Alchemy 上,这只是在同一个应用中用同一个 key 启用一个网络而已。

同一个 key 还可用于我们的 Data API,获取代币余额、价格和 NFT 数据,因此你今天迁移到的端点,已经覆盖了你原本日后需要自行构建的功能。

成本对比如何?

两款产品的计费方式不同。Blockchain Node Engine 按节点、按小时收费,无论节点是在处理流量还是处于闲置状态。我们则按你发送的请求收费,以计算单元(CU)计量,像 eth_blockNumber 这样的轻量调用消耗的单元少于繁重的追踪调用。

Google Cloud Blockchain Node Engine
Alchemy

计费模式

按节点、按小时

按请求,以计算单元计

Ethereum 全节点工作负载

每小时 $0.69,约合每月 $504

Free 计划每月 3,000 万 CU;Pay As You Go 每百万 CU $0.525

Ethereum 归档工作负载

每小时 $2.74,约合每月 $2,000

同一端点,同一费率

闲置时长

计费

不计费

添加另一条链

再部署一个节点(前提是该链受支持)

同一 key,同一费率

换个角度看,一个 Ethereum 归档节点在 Google Cloud 上每月约 $2,000 的费用,在我们的 Pay As You Go 套餐中可以购买约 38 亿 CU,并可分摊到你账户中的所有链上。为了冗余而运行第二个节点的团队,要支付两倍的小时费率。我们的端点背后由一组节点共同提供服务,因此冗余不会成为一项额外开支。高用量团队可以联系我们的销售团队,了解 Enterprise 套餐和承诺吞吐量方案。

需要帮助规划迁移吗?

Google Cloud 关停 Blockchain Node Engine,Alchemy 提供迁移实操支持

你可以免费创建 Alchemy 账户,今天就拿到一个可用的端点,无需签约,也没有需要同步的节点。这足以让你在本周内针对现有配置运行一致性校验。

如果你有生产工作负载、多链部署,或者团队一直依赖专用节点,请联系我们的销售团队。我们会帮你梳理 Blockchain Node Engine 配置的对应关系,确定合适的套餐规模,并在 12 月 15 日之前提早安排好切换。

常见问题

Google Cloud Blockchain Node Engine 什么时候关停?

Google Cloud Blockchain Node Engine 和 Blockchain RPC 将于 2026 年 12 月 15 日关停。届时,Google 会删除剩余的节点和端点,仍在调用它们的应用都会失败,因此请计划提前数周完成迁移。

Google Cloud Blockchain Node Engine 有什么好的替代方案?

Alchemy 可以直接替代。它通过同样的标准 JSON-RPC 方法支持 Blockchain Node Engine 提供的所有网络(Ethereum、Polygon 和 Solana),此外还可以用一个 API key 访问 100 多条其他链。需要单租户容量的团队可以使用 Alchemy Dedicated Clusters 来替代专用节点。

迁出 Blockchain Node Engine 需要重写应用吗?

不需要。Alchemy 使用标准 JSON-RPC,因此 ethers、viem 和 web3.py 等客户端都可以继续使用。你只需更改每个网络的端点 URL,并移除 Google Cloud API key 的请求头或查询参数,因为 Alchemy 的 API key 是 URL 的一部分。

在 Alchemy 上,用什么替代 Blockchain Node Engine 专用节点?

对于大多数工作负载,标准的 Alchemy RPC 端点即可同时替代全节点和归档节点,无需运行或升级任何节点。需要为自身工作负载单独预留容量的团队,可以迁移到 Alchemy Dedicated Clusters,它在单个端点背后提供单租户基础设施。

迁移到 Alchemy 后可以使用哪些链?

Blockchain Node Engine 支持的所有网络均可使用,包括 Ethereum 主网、Sepolia、Hoodi、Polygon 主网、Amoy 和 Solana。除此之外,Alchemy 还支持 100 多条链,包括 Base、Arbitrum、Optimism 和 BNB Chain,全部可以用同一个 API key 访问。

AI 编码代理能帮我迁移端点吗?

可以。安装 Alchemy CLI,运行 alchemy install skills,并添加 Alchemy MCP server,然后让 Claude Code 或 Cursor 等代理找出仓库中所有 Google Cloud 端点和 API key,提出替换方案并等待你的批准。之后,代理还可以用 CLI 验证每个新端点。

Alchemy 比 Google Cloud Blockchain Node Engine 更便宜吗?

对于大多数工作负载来说,是的。Blockchain Node Engine 按节点、按小时计费,即使闲置,一个 Ethereum 全节点每月也约需 $504,一个归档节点约需 $2,000。Alchemy 按请求计费。Free 计划每月包含 3,000 万计算单元,Pay As You Go 价格为每百万计算单元 $0.525。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。