---
title: "公共、私有与专用 RPC 端点详解"
description: "\"Private RPC\"可以指带密钥的端点、私有交易路由,也可以指单租户节点。分别是什么、彼此如何配合,以及你的工作负载需要哪一种。"
---

# 公共、私有与专用 RPC 端点详解

<ImageBlock
  src="https://media.alchemy.com/overviews/private-rpc-endpoints-2026-07-22.png"
  alt="公共、私有和专用 RPC 端点标题卡"
  width={5760}
  height={2700}
  priority
/>

每个钱包和链上应用都是通过 RPC endpoint 与区块链通信的：这是一个接受诸如“这个地址的余额是多少”和“广播这笔交易”之类请求的 URL，并将请求转发给运行该链软件的节点。大多数钱包内置了一个所有用户共用的默认 endpoint。这个默认 endpoint 背后的节点通常由专业提供商运营，但在其中，你只是数百万匿名用户中的一个：你和所有人共享这个钱包的配额，看不到也无法调试自己的请求，用量增长时也无法提高限额。私有 RPC endpoint 解决了这个问题：它为你提供一个属于自己的连接，配有你自己的计量配额，来自你选择的提供商。

在动手搭建之前，有必要先了解“private RPC”在这里可能指的几种不同含义：

- **私有 RPC endpoint。** 一个嵌入了你的 API key 的 URL，由节点提供商的托管基础设施提供服务，比如 [Alchemy 的 RPC API](/rpc-api)。“私有”意味着只有你能使用这个特定的 API URL，因此你的请求不会排在一群人之后。这是大多数钱包和应用提到这个词时的含义。
- **私有交易。** 一种交易路由方式，使交易在被打包进区块之前不进入公共 mempool（等候中的交易在此明文可见的“候车室”）。这可以保护交易不受 MEV 机器人的侵害。私有交易是部分 RPC 提供商为其 endpoint 附加的一项功能，但并非每个私有 RPC endpoint 都必然具备这项功能。
- **私有、单租户基础设施。** 为单一客户保留的区块链节点，用于那些对隔离性、延迟或定制化有共享机器无法满足的要求的工作负载，比如 [Alchemy 的 Dedicated Clusters](/dedicated-clusters)。

这三种定义并不是相互竞争的选项，而是层层递进的关系：私有 endpoint 是入口，私有交易路由是提供商可以附加在其上的功能，而单租户基础设施则是当“共享”本身成为问题时你需要升级到的方案。本指南将逐一说明这几种隐私选项，并对它们进行比较。

## 什么是私有 RPC endpoint？

私有 RPC endpoint 是一个带有唯一 URL、只有所有者才能使用的 RPC endpoint，它为你提供了一条通往节点提供商集群的、经过身份验证的专属通道，而不是公共网关中开放的排队通道。

可以把它想象成一栋公寓楼。私有 endpoint 给你自己的钥匙和自己的大门，但楼里的水管和电力是与其他所有租户共享的。正是这种共享，使得私有 endpoint 的创建免费且即时可用：你的 URL 是你独有的，而其背后的节点集群则是为众多客户大规模运营的。我们在 Alchemy 的节点集群，正是支撑 Robinhood、Coinbase、Polymarket 等团队每年超过 1 万亿美元交易量的同一套基础设施，而你可以免费访问这套相同的节点集群基础设施。

当你创建一个 Alchemy 账户时，endpoint 的 URL 中会嵌入一个 API key，正是它使你的连接成为私有连接。节点本身仍然是共享的，但你的请求配额不是：我们按 key 计量用量，因此你拥有一份预留的吞吐量份额，不会被其他人的流量占用。公共 endpoint 的运作方式则相反：一个容量池要在所有匿名调用者之间分配，通常按 IP 地址划分，所以随着使用者增多，你实际可用的额度会不断缩水。

与共用钱包的默认 endpoint 或调用公共 endpoint 相比，私有 endpoint 能为你带来四个方面的好处：

- **速度。** 你的请求会命中一个为低延迟调优的集群，而不必在公共 endpoint 中排在成千上万陌生人之后。你可以在 [实时延迟基准测试](/benchmarks) 中比较各家提供商，再做选择。
- **数据准确性。** 落后于链头的节点会返回过期的余额并导致交易失败。托管集群会保持节点同步最新，让你的钱包和应用看到的是链的当前状态。
- **可靠性。** 在空投、铸造和剧烈交易的时间窗口中，公共 endpoint 往往最先出现性能下降，因为其共享池正是所有人同时涌入的地方。有了 API key，你的计量吞吐量不会受这种拥挤影响，而保持你的 endpoint 背后的集群性能良好、服务好你的全部流量，是提供商的职责。
- **可见性。** 公共 endpoint 通常是匿名的。用自己的 endpoint，你可以看到每一个请求、调试失败情况并设置告警，这在某笔交易悄无声息地失败时尤为重要。

对开发者而言，在代码中使用这个 endpoint 只需改一行：它是一个标准的 JSON-RPC URL，你可以将它作为 provider URL 传给 ethers、viem 或 web3.py，而同一 URL 的 `wss://` 版本则用于订阅（subscriptions）。由于 key 就在 URL 中，如果这个 URL 会出现在前端代码里，请务必保护好它：控制台允许你将 key 限制为特定的域名和 IP 地址。

## 公共、私有和专属 endpoint 相比如何？

RPC 访问分为三个层级，右侧每一列都为你提供更高程度的隔离。

<EmbeddedTable
  table={{
    columns: [
      { key: "feature", width: 160, title: "", dataType: "object" },
      { key: "public", width: 200, title: "Public endpoint", dataType: "object" },
      {
        key: "private",
        width: 220,
        title: "Private endpoint",
        dataType: "object",
      },
      {
        key: "dedicated",
        width: 220,
        title: "Dedicated cluster",
        dataType: "object",
      },
    ],
    data: [
      {
        feature: { title: "Access", tooltip: "", icon: "" },
        public: { title: "Open to everyone", tooltip: "", icon: "" },
        private: { title: "Keyed URL, only you", tooltip: "", icon: "" },
        dedicated: { title: "Keyed URL, only you", tooltip: "", icon: "" },
        id: 0,
      },
      {
        feature: { title: "Infrastructure", tooltip: "", icon: "" },
        public: {
          title: "Shared, no commitments to you",
          tooltip: "",
          icon: "",
        },
        private: {
          title: "Shared, provider-managed fleet",
          tooltip: "",
          icon: "",
        },
        dedicated: { title: "Single-tenant nodes", tooltip: "", icon: "" },
        id: 1,
      },
      {
        feature: { title: "Rate limits", tooltip: "", icon: "" },
        public: {
          title: "Low, shared across all callers",
          tooltip: "",
          icon: "",
        },
        private: {
          title: "Metered per key, scales with your plan",
          tooltip: "",
          icon: "",
        },
        dedicated: {
          title: "Your provisioned capacity",
          tooltip: "",
          icon: "",
        },
        id: 2,
      },
      {
        feature: { title: "Reliability", tooltip: "", icon: "" },
        public: { title: "No guarantees", tooltip: "", icon: "" },
        private: {
          title:
            'Provider-accountable (<a href="/benchmarks">99.99% measured at Alchemy</a>)',
          tooltip: "",
          icon: "",
        },
        dedicated: {
          title: "Redundant nodes plus failover",
          tooltip: "",
          icon: "",
        },
        id: 3,
      },
      {
        feature: { title: "Customization", tooltip: "", icon: "" },
        public: { title: "None", tooltip: "", icon: "" },
        private: { title: "None", tooltip: "", icon: "" },
        dedicated: {
          title: "Custom tracers, binaries, regions",
          tooltip: "",
          icon: "",
        },
        id: 4,
      },
      {
        feature: { title: "Cost", tooltip: "", icon: "" },
        public: { title: "Free", tooltip: "", icon: "" },
        private: {
          title: "Free tier, then usage-based",
          tooltip: "",
          icon: "",
        },
        dedicated: {
          title: "Fixed monthly, capacity-based",
          tooltip: "",
          icon: "",
        },
        id: 5,
      },
      {
        feature: { title: "Best for", tooltip: "", icon: "" },
        public: { title: "Quick tests", tooltip: "", icon: "" },
        private: {
          title: "Most users, apps, and production workloads",
          tooltip: "",
          icon: "",
        },
        dedicated: {
          title: "Hard isolation, latency, or customization requirements",
          tooltip: "",
          icon: "",
        },
        id: 6,
      },
    ],
  }}
/>

前两列之间的真正区别在于责任归属，而非能力高低。[公共 RPC endpoint](/rpc) 由链基金会、志愿者以及提供免费样品的服务商运营，其中许多运营得都不错。但它们对你没有任何义务：不承诺容量，不承诺正常运行时间，不保证数据是最新的，出问题时也找不到人负责。用来做个快速测试还行。

对绝大多数人来说，托管提供商的私有 endpoint 是正确的默认选择：想要更快钱包交易的普通用户、构建应用的开发者，以及承载真实流量的生产团队。提供商有责任保持集群的快速、最新和可用，并公布其实测性能，供你据此追责。

除此之外，[Dedicated Clusters](/dedicated-clusters) 是为一小部分工作负载而存在的，这些负载的需求是共享基础设施在设计上就无法满足的。请注意上表中“Customization（定制化）”这一行所暗示的含义：私有 endpoint 向每位客户提供相同的标准 API，因为所有人共用同一批节点。只有单租户基础设施才能运行专属于你的代码或配置。

## 私有 endpoint 能保护交易免受 MEV 侵害吗？

默认情况下不能，这正是“private RPC”的第二层含义容易造成混淆的地方。私有 endpoint 中的“私有”指的是谁能使用这个 URL endpoint。而通过它发送的交易，在大多数网络和大多数提供商那里，仍然会进入公共 mempool——MEV 机器人可以在这些交易被打包之前看到它们，并对其进行抢跑（front-run）或三明治攻击（sandwich）。

要在交易被打包进区块之前将其排除在公共 mempool 之外，需要私有交易路由，而这是每个提供商各自决定是否提供的功能，并非 RPC 技术栈的标准组成部分。有些提供商完全不提供这项功能；另一些则将其作为附加服务或独立 endpoint 出售。

在 Alchemy，我们为将写入流量全部通过我们发送的客户，在 Ethereum、Solana、Base、Arbitrum 和 BNB Smart Chain 上免费提供 MEV 保护。通过我们标准 endpoint 发送的交易会 [自动路由至私有提交通道](https://www.alchemy.com/docs/reference/mev-protection)。这些交易不会被广播到公共网络上供任何人查看，而是直接发送给负责组装区块的相关方，例如 Ethereum 上受信任的 block builder。

具体的通道因链而异，但效果是一致的：你的交易在被打包进区块之前始终不可见，从而免受抢跑和三明治攻击的影响。这不需要任何配置，不产生额外费用，也不会使你的执行价格变差。需要明确说明的是路由所站的立场：我们绝不会抢跑客户的交易，也不会从其订单流中攫取价值。我们流程中唯一存在的 MEV，是对你有利的那一种，比如更优的执行价格。

“必须独占”这一要求，正是保护机制得以生效的关键，而不是一条免责声明。只有当一笔交易的所有副本都不进入公共 mempool 时，它才受到保护。如果你出于冗余考虑，把同一笔交易通过多个提供商同时广播（multiplex），那么发往其他地方的副本会进入公共 mempool，MEV 机器人可以看到它们，这笔交易也就失去了保护。

如果你正在评估各家提供商，且 MEV 保护对你的用户很重要，请明确询问这项功能是否存在。一个 endpoint 是“私有”的，并不能说明它是如何路由交易的。

## 如何创建一个私有 RPC endpoint？

用任意 RPC 提供商创建私有 RPC endpoint 都很简单。只需 [创建账户或登录](https://dashboard.alchemy.com/?utm_source=overview&utm_medium=overview&utm_campaign=node)，许多提供商会在你创建账户时提供一个带有一定用量限制的免费 API key，无需信用卡（提示：说的就是我们）。

接下来，选择你想使用该 endpoint 的链和网络。在 Alchemy，你只需一个 API key 就能访问我们支持的 [100 多个网络](/rpc)，每个网络都有自己的 URL（如 eth-mainnet、base-mainnet 等），并附带你的 key。请记住：你的 URL 中包含 API key，要像对待密码一样对待它。

对于正在测试应用的开发者，接下来需要把钱包连接到你新建的 endpoint：打开你选用的钱包，进入网络选择器，输入你想连接的链的相关信息，以及你的私有 RPC URL。完成之后，与该钱包相关的所有交易都会通过你的私有 endpoint 路由！

## 什么时候私有 endpoint 还不够用？

私有 endpoint 为你保留了专属的吞吐量份额，但为其提供服务的机器仍与其他客户共享。对绝大多数工作负载而言，这正是恰当的取舍：即时开通、弹性扩展，按用量计费，无需容量规划。

不过，有一小部分工作负载存在共享集群在设计上无法满足的需求：

- **节点上的自定义代码。** 安全和取证团队会运行定制化的 tracer 和经过修改的节点客户端。共享集群无法为单一客户托管其自定义代码，因为所有客户共用同一个节点运行环境。
- **监管隔离。** 受监管的金融机构需要证明没有其他客户的流量、代码或数据接触过自己的运行环境。在多租户硬件上，这种证明在定义上就是不可能的。
- **区域延迟。** 以速度竞争的交易公司需要把节点部署在特定区域：紧邻自己的服务器以缩短读取的往返时延，或靠近某个 rollup 的 sequencer（负责接收和排序该 rollup 交易的服务）以使提交的交易更快到达。共享集群是为整体性能而部署的，而不是为某一客户的地理位置服务。
- **无限制的历史查询。** 预言机、索引器和分析平台需要不受限制的 getLogs 查询范围以及大量的归档访问，而共享集群出于保护其他租户的考虑会对这类请求进行限流。

对于这些工作负载，下一步升级的选择是像 Alchemy 的 [Dedicated Clusters](/dedicated-clusters) 这样的产品：由我们负责配置、运营和维护的单租户节点集群，可按你的需求进行配置。每个集群在每条链上都运行冗余节点，具备经我们 SOC 2 Type II 审计覆盖的单租户隔离性，可部署在你选择的区域，并按已配置容量收取固定月费。对于超出集群已配置容量的流量峰值，可以自动故障转移到我们的共享集群，而不是直接返回错误；对隔离性要求排除这一选项的团队，则可以按峰值负载来配置集群规格。像 [Blockaid](/dapps/blockaid) 这样的团队正是使用 Dedicated Clusters 来运行自定义 tracer，保护着超过 3120 亿美元的资产安全。

如果你正在权衡这个决定，我们关于 [如何在共享与专属基础设施之间做选择](/overviews/dedicated-vs-shared-nodes) 的指南对此有详细说明，此外还有更深入的文章分别介绍 [专属基础设施的工作原理](/overviews/how-dedicated-blockchain-infrastructure-works) 和 [如何评估专属基础设施提供商](/overviews/how-to-evaluate-dedicated-blockchain-infrastructure)。目前自行运维节点的团队可以了解 [迁移到专属基础设施涉及哪些工作](/blog/migrate-self-hosted-nodes-dedicated-infrastructure)——这只是更换一个 endpoint，而不是推倒重建。

## 获得更快的链上连接

无论哪个层级适合你，升级路径的起点都是一样的。花几分钟在免费层级创建一个私有 RPC endpoint，让你的钱包或应用指向它，就能获得对所有主流网络更快、更可靠的访问。如果你的工作负载在隔离性、延迟或定制化方面存在共享基础设施无法满足的要求，欢迎 [与我们的团队聊聊 Dedicated Clusters](/dedicated-clusters)。

## 常见问题

### 什么是私有 RPC endpoint？

私有 RPC endpoint 是一个带有唯一 URL、只有所有者才能使用的 RPC endpoint，它为你提供一条通往节点提供商的、经过身份验证的专属连接，而不是共享的公共网关。这个 URL 中嵌入了 API key，用量按 key 计量，因此其他人的请求无法占用你的容量。

### 公共 RPC endpoint 和私有 RPC endpoint 有什么区别？

公共 RPC endpoint 向所有人开放，按尽力而为的方式运行：没有速率限制的保证，没有正常运行时间的承诺，性能下降时也没有人负责。私有 endpoint 是提供商托管集群上的一个带 key 的 URL，其速率限制会随你的套餐扩展，提供商会公布正常运行时间数据，控制台中还能看到你的流量情况。

### 私有 RPC endpoint 能让我的交易变得私密吗？

单靠它本身不能。名字中的“私有”指的是谁能使用这个 endpoint：每一笔交易依然会在链上公开结算，运营该 endpoint 的提供商也能看到你发送的请求，这和任何 RPC 提供商都一样。要在交易被打包之前将其排除在公共 mempool 之外，需要私有交易路由，这是各家提供商各自提供的功能。Alchemy 在 Ethereum、Solana、Base、Arbitrum 和 BNB Smart Chain 上都包含这项功能；许多提供商并不提供。

### Alchemy 会保护我的交易免受 MEV 侵害吗？

会。Alchemy 在 Ethereum、Solana、Base、Arbitrum 和 BNB Smart Chain 上的标准 RPC endpoint 都包含免费的 MEV 保护。交易会通过私有方式路由，使 MEV 机器人在其被打包之前无法看到它们，从而在不改变你发送交易流程、也不会使执行价格变差的情况下，防止抢跑和三明治攻击。要获得保护，你需要把写入流量全部通过 Alchemy 发送：如果你把同一笔交易同时发给多个提供商，发往其他地方的副本会进入公共 mempool，被 MEV 机器人看到，这笔交易也就失去了保护。

### 私有 RPC endpoint 和专属节点有什么区别？

私有 RPC endpoint 是由共享的多租户基础设施提供服务的一个带 key 的 URL：URL 是专属的，但背后的节点不是。专属节点或集群则是为单一客户保留的单租户基础设施，用于那些需要在节点上运行自定义代码、需要监管隔离、需要特定区域，或需要无限制历史查询的工作负载。Alchemy 两者都提供，而大多数工作负载在由共享基础设施支撑的私有 endpoint 上运行效果最好。

### 创建私有 RPC endpoint 需要技术技能吗？

不需要。用 Alchemy 创建一个私有 RPC endpoint 只需几分钟：创建一个免费账户，创建一个 app，然后复制它生成的 RPC URL。把它添加到像 MetaMask 这样的钱包中，只是一个设置上的改动，而不是编程任务。

### 我可以把私有 RPC endpoint 连接到 MetaMask 吗？

可以。打开 MetaMask 的网络菜单，添加一个自定义网络，然后粘贴你的私有 RPC URL，以及该网络对应的 chain ID、货币符号和区块浏览器地址。保存之后，该网络上的所有活动都会通过你的 endpoint 进行路由。

### Alchemy 为哪些区块链提供私有 RPC endpoint 支持？

Alchemy 为 Ethereum、Solana、Base、Polygon、Arbitrum、Optimism 以及跨越各主要 layer 1 和 layer 2 生态系统的 100 多个其他网络提供私有 RPC endpoint 支持。

### 我应该在什么时候从私有 endpoint 转向专属基础设施？

当你的工作负载存在共享基础设施无法满足的硬性需求时，就应转向专属基础设施：在节点上运行自定义 tracer 或二进制程序、为合规目的证明单租户隔离性、为降低延迟部署在特定区域，或运行不受限制的归档和日志查询。如果这些情况都不适用，那么以共享基础设施为支撑的私有 endpoint 是更好的默认选择。
