---
title: "哪种 Optimism 节点最好？公共节点 vs 私有节点 vs 自托管节点"
description: "比较自托管节点、公共 RPC 端点与私有 RPC 端点"
---

# 哪种 Optimism 节点最好？公共节点 vs 私有节点 vs 自托管节点

要从Optimism获取数据，dApp需要通过RPC节点发送请求。本文将探讨在[Optimism](https://www.alchemy.com/layer2/optimism)上支持[web3开发](https://www.alchemy.com/overviews/how-to-learn-web3-development)的不同类型节点。

## 什么是Optimism？

Optimism是一个Ethereum二层\(L2\)扩容方案，利用Optimistic Rollup技术实现每秒最多2,000笔交易。Optimism团队按照一套明确的核心设计原则设计并维护其区块链。

1. 简洁性
1. 实用主义
1. 可持续性
1. Optimism

### 什么是optimistic rollup？

[optimistic rollup](https://www.alchemy.com/overviews/optimistic-rollups)利用Ethereum的安全性，通过将计算和数据存储转移到链下，来提高Ethereum基础层的吞吐量并降低延迟。Optimism会将其二层链上产生的大量交易打包成一个rollup。然后，[rollup协议](https://community.optimism.io/docs/protocol/2-rollup-protocol/)会乐观地假设这些交易全部有效，并将该rollup提交至Ethereum L1链。

## 什么是Optimism节点？

Optimism节点是运行在单台计算机上的程序，使开发者和交易者能够连接到Optimism区块链网络的其余部分。Optimism节点涉及两个主要组成部分：数据传输层（Data Transport Layer）和客户端软件（Client Software）。

### **数据传输层\(DTL\)**

**数据传输层**充当Optimism与Ethereum之间的连接。Ethereum上托管着一个智能合约——_CanonicalTransactionChain_\(CTC\)合约——其中包含发布到Optimism区块链的所有区块列表。

DTL会定期通过检索之前发布到CTC的区块，在节点上构建Optimism区块链。如果没有DTL，Optimism节点将无法及时同步L2 optimistic rollup所构建的区块。

### **客户端软件**

与数据传输层一同运行的是**Optimism客户端软件**。Optimism客户端与原版[Geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one)（即Go Ethereum，最广泛使用的[Ethereum客户端](https://www.alchemy.com/overviews/execution-layer-and-consensus-layer-node-clients)）几乎完全相同。因此，在内部结构上，Optimism与Ethereum非常相似，共享EVM、相同的账户结构、gas计量机制等等。

在Optimism上开发的一大优势在于，大多数适用于Ethereum的工具几乎无需修改代码即可在Optimism上使用。

## 为什么需要Optimism节点？

构建Optimism应用需要通过optimistic rollup将交易发布至CTC。此外，Optimism节点还允许[应用程序](https://www.alchemy.com/dapps/top/defi-dapps)检索有关Optimism区块的数据。要在Optimism上支持高性能的dApp，运行良好的节点是必不可少的。

## Optimism节点的类型

将dApp连接到Optimism节点有多种方式，包括私有Optimism节点、使用Optimism的公共RPC节点端点，以及运行自托管节点。

大多数Optimism开发者会选择使用像Alchemy这样的Optimism节点提供商所提供的私有RPC端点，因为公共端点和自托管节点存在诸多缺点，包括吞吐量较低、搭建成本较高，以及需要投入更多工程维护资源。

### 1. 公共Optimism节点

Alchemy负责维护[Optimism的主要公共端点](https://community.optimism.io/docs/useful-tools/networks/#optimism-mainnet)，可通过以下端点URL访问：https://mainnet.optimism.io。

尽管Optimism支持公共端点，但其明确表示公共RPC端点完全不适合用于生产环境。

Optimism公共端点会对应用程序进行速率限制，并且通常只支持有限的JSON-RPC方法。

### 2. 私有Optimism节点提供商

如果Optimism公共节点的吞吐量限制影响了你的应用或交易，使用来自[专业Optimism节点提供商](https://www.alchemy.com/overviews/blockchain-node-providers)的私有Optimism RPC端点，可以让工程师获得可靠且可扩展的Optimism节点。

Alchemy是[Optimism推荐的节点提供商](https://community.optimism.io/docs/useful-tools/providers/#)。除了在web3领域提供最可靠的Optimism节点性能外，Alchemy还为Optimism开发者提供了一系列开发工具，包括Alchemy Build、Monitor，以及[Optimism webhooks](https://www.alchemy.com/overviews/optimism-webhooks)，这些工具都旨在为你提供最佳的Optimism开发体验。

#### 如何开始使用Alchemy的私有Optimism RPC端点

Alchemy提供功能强大的免费套餐，让你可以立即开始使用可靠的[私有Optimism RPC端点](https://www.alchemy.com/overviews/private-rpc-endpoint)。

在Alchemy中创建新的Optimism应用：

1. 注册[创建免费账户](https://dashboard.alchemy.com/signup/?a=2b2fa82d19)，或登录已有账户
1. 点击控制面板右上角的“Create App”按钮

<ImageBlock
  src="https://media.alchemy.com/1704294287-alchemy-developer-platform-dashboard.png"
  alt="Alchemy 开发者平台仪表盘。"
  width={1600}
  height={214}
  caption="Alchemy 开发者平台仪表盘。"
/>

接下来填写以下字段：

1. 为应用命名
1. 填写描述
1. 在“Chain”中选择“Optimism”
1. 在“Network”中选择“Optimism Mainnet”

如果你想在Optimism的Goerli测试网上创建或[迁移应用](https://www.alchemy.com/overviews/migrate-from-kovan-to-goerli-on-optimism)，可以在“Network”下拉菜单中选择该测试网。

<ImageBlock
  src="https://media.alchemy.com/1704294609-create-optimism-rpc-alchemy.jpeg"
  alt="Alchemy 仪表盘：为私有 RPC 端点创建 Optimism 应用"
  width={1218}
  height={448}
  caption="使用 Alchemy 创建私有 Optimism RPC 端点。"
/>

接下来，**点击控制面板上的“View Key”按钮**查看你的HTTPS密钥，即可开始向你的新节点发送请求！

<ImageBlock
  src="https://media.alchemy.com/1704294644-view-key-alchemy-dashboard.jpeg"
  alt="从 Alchemy 应用仪表盘复制你的 Optimism RPC 端点 URL。"
  width={1253}
  height={547}
  caption="从 Alchemy 应用仪表盘复制你的 Optimism RPC 端点 URL。"
/>

现在，将应用中的Optimism RPC URL替换掉，即可开始通过Alchemy提供的专用Optimism端点发送流量。

### 3. 自托管Optimism节点

为了完全掌控节点的配置和实现方式，开发者可以选择[运行自己的Optimism节点](https://www.alchemy.com/overviews/running-your-own-node)（即自托管节点）。

搭建Optimism节点的第一步是确定节点的硬件配置。为此，Optimism建议使用以下配置的系统：

1. 至少16GB内存
1. 至少100GB可用空间的SSD（固态硬盘）

确定硬件后，Optimism提供了两种搭建自托管节点的方法：使用Docker的配置方式，以及不使用Docker的配置方式。

以下是这两种搭建Optimism节点方法的概要说明。如果你决定搭建节点，请遵循Optimism的[节点配置说明](https://community.optimism.io/docs/developers/build/run-a-node/)。

#### 1. Docker配置

Optimism推荐的自托管节点搭建方法是使用其提供的[Docker镜像](https://hub.docker.com/u/ethereumoptimism)。

使用Docker镜像搭建节点，可以省去许多配置步骤，因为镜像中已经包含了大多数配置设置。

**以下是使用Docker配置方式的高层步骤概览：**

1. 将节点的Github[代码仓库](https://github.com/smartcontracts/simple-optimism-node)克隆到本地机器
1. 配置节点设置
1. 运行你的自托管Optimism节点

在第二步中，你需要提供其他多个节点：另一个L2 Optimism节点和一个L1 RPC节点。

你的Optimism节点会使用这个次级L2 Optimism节点来验证自身的正确性，而Ethereum\(L1\)RPC节点则用于检查节点的状态根（state roots），并通过CTC（_CanonicalTransactionChain_）从L1下载L2区块。

Optimism建议这些辅助节点由RPC提供商提供。

使用这种Docker配置方式，你的节点将获得多项额外功能，帮助你维护节点。

##### 健康检查服务如何工作？

健康检查服务会定期将你的节点状态与参考节点的状态进行比较，以确认你的节点正常同步。故障检测器会扫描来自Optimism排序器（sequencer）的交易，并将结果与你节点上计算出的交易进行比对。最后，本地托管的仪表盘可以让你轻松查看基本的节点指标，包括故障数据、DTL同步状态等。

#### 2. 非Docker配置

如果预配置的Docker镜像无法满足你的自定义需求，Optimism也提供了独立搭建节点的框架说明。不过，官方并不推荐采用这种方式搭建节点。

虽然这些说明经过了测试，但其稳健性不及Docker配置方式。采用这种方法存在搭建出功能不佳节点的风险。以下是该说明的概要。

1. **安装运行Optimism节点所需的软件包和工具**

你需要安装的软件包和工具包括：

- ‍**Libusb** - Geth用于检测硬件钱包的库
- **Node.js** - 一种JavaScript运行时环境
- ‍**Yarn** - 一款常用的Node.js包管理工具
- **Go** - 编程语言

2. **搭建数据传输层**

DTL是节点软件的第一个组成部分。在这一步中，你需要下载源代码、编辑其配置，并运行该层。

与Docker配置方式一样，这里你也需要为自托管的Optimism节点提供另一个节点，以便同步区块。

运行后，需管理DTL以确保它与Optimism正确同步。

3. **搭建Optimism客户端**

搭建Optimism客户端是自托管节点的第二个组成部分。你需要编译源代码、下载并验证来自Optimism创世区块的状态、创建并配置其运行环境、运行该配置，最后启动客户端。

对于希望更全面掌控Optimism节点配置的资深web3开发者而言，运行自托管节点是一种可选方案。但相较于使用像Alchemy这样的Optimism节点提供商及开发者平台，搭建和管理自托管节点在成本和时间投入上都更高。

## 哪种Optimism节点类型最适合我？

在大多数情况下，通过Alchemy使用私有Optimism端点是最佳选择。公共Optimism端点不应用于生产环境流量，而除非你是资深的基础设施工程师，否则不应自行管理Optimism节点。

即使你只是Optimism上的普通交易者或dApp用户，[将MetaMask钱包更新为使用专用Optimism端点](https://www.alchemy.com/docs/reference/optimism-api-quickstart#optimism-tutorials)也能带来更快、更可靠的服务。

立即[开始使用](https://www.alchemy.com/layer2/optimism/?a=2b2fa82d19)市面上最强大的免费Optimism节点服务，借助Alchemy充分释放你的dApp潜力。
