跳至内容
0%

哪种 Optimism 节点最好?公共节点、私有节点与自建节点对比

Alchemy team headshot

作者 Alchemy

发布于 2022年9月6日2 分钟阅读

要从Optimism获取数据,dApp 需要通过 RPC 节点发送请求。本文将探讨支持 Optimism 上web3开发的不同节点类型。

什么是 Optimism?

Optimism 是一种 Ethereum 二层(L2)扩容方案,利用乐观汇总(optimistic rollup)的能力实现每秒高达 2,000 笔交易。Optimism 依据一套明确的核心设计理念来设计和维护其区块链。

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

什么是乐观汇总?

乐观汇总利用 Ethereum 的安全性,通过将计算和数据存储移到链下,提升 Ethereum 基础层的吞吐量和延迟表现。Optimism 将其二层链上发生的大量交易打包成一个汇总(rollup)。随后,汇总协议会乐观地假定这些交易全部有效,并将该 rollup 提交到 Ethereum L1 链上。

什么是 Optimism 节点?

Optimism 节点是运行在单台计算机上的程序,使构建者和交易者能够连接到 Optimism 区块链网络的其余部分。Optimism 节点涉及两个主要组件:Data Transport Layer 和 Client Software。

数据传输层(DTL)

Data Transport Layer 充当 Optimism 与 Ethereum 之间的联系。托管在 Ethereum 上的是一个智能合约——CanonicalTransactionChain(CTC)合约——其中包含已发布到 Optimism 区块链的所有区块列表。

DTL 通过检索先前发布到 CTC 的区块,定期在节点上构建 Optimism 区块链。如果没有 DTL,Optimism 节点将无法与 L2 乐观汇总构建的区块保持同步。

客户端软件

与 Data Transport Layer 一起运行的是 Optimism 客户端软件。Optimism 客户端几乎与原版的 Geth(即 Go Ethereum,使用最广泛的 Ethereum 客户端)完全相同。因此,从内部来看,Optimism 与 Ethereum 非常相似,共享 EVM、相同的账户结构、gas 计量方式等等。

在 Optimism 上开发的一大优势是,大多数在 Ethereum 上使用的工具在 Optimism 上也同样适用,几乎不需要修改代码。

为什么需要 Optimism 节点?

构建 Optimism 应用需要通过乐观汇总将交易发布到 CTC。此外,Optimism 节点还能让应用检索 Optimism 区块的相关数据。要在 Optimism 上支持高性能的 dApp,一个运行良好的节点是必不可少的。

Optimism 节点的类型

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

大多数 Optimism 开发者会使用来自 Optimism 节点提供商(如 Alchemy)的私有 RPC 端点,因为公共端点和自托管节点存在诸多缺点,包括更低的吞吐量、更高的搭建成本,以及需要更多的工程维护支持。

1. 公共 Optimism 节点

Alchemy 管理着 Optimism 的主要公共端点,可以通过以下端点 URL 访问:https://mainnet.optimism.io。

尽管公共端点受到支持,Optimism 强调公共 RPC 端点完全不适合用于生产环境。

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

2. 私有 Optimism 节点提供商

如果 Optimism 公共节点的吞吐量不足限制了你的应用或交易,来自专业 Optimism 节点提供商的私有 Optimism RPC 端点将为工程师提供可靠且可扩展的 Optimism 节点访问能力。

Alchemy 是 Optimism 推荐的节点提供商。除了在 web3 中最可靠的 Optimism 节点性能外,Alchemy 还为 Optimism 开发者提供一系列开发工具,包括 Alchemy Build、Monitor,以及 Optimism webhooks,这些工具都旨在为你提供最佳的 Optimism 开发体验。

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

Alchemy 提供强大的免费套餐,让你能够快速上手一个可靠的私有 Optimism RPC 端点。

在 Alchemy 中创建新的 Optimism 应用:

  1. 注册创建一个免费账户,或登录已有账户
  2. 点击仪表盘右上方的 "Create App" 按钮
Alchemy 开发者平台仪表盘。
Alchemy 开发者平台仪表盘。

现在填写以下字段,包括:

  1. 为你的应用命名
  2. 编写描述
  3. 将 "Chain" 选择为 "Optimism"
  4. 将网络(Network)选择为 "Optimism Mainnet"

如果你想在 Optimism 的 Sepolia 测试网上创建应用,可以在 "Network" 下拉菜单中选择该测试网。

Alchemy 仪表盘:为私有 RPC 端点创建 Optimism 应用
使用 Alchemy 创建私有 Optimism RPC 端点。

接下来,点击仪表盘上的 "View Key" 按钮查看你的 HTTPS 密钥,即可开始向你的新节点发送请求!

从 Alchemy 应用仪表盘复制你的 Optimism RPC 端点 URL。
从 Alchemy 应用仪表盘复制你的 Optimism RPC 端点 URL。

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

3. 自托管 Optimism 节点

为了完全掌控节点的配置和实现方式,开发者可以选择运行自己的 Optimism 节点(即自托管节点)。

搭建 Optimism 节点的第一步是确定节点的硬件配置。为此,Optimism 推荐以下配置:

  1. 至少 16GB 内存
  2. 至少 100GB 可用空间的 SSD(固态硬盘)

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

以下是搭建 Optimism 节点的两种方法概述。如果你决定搭建节点,请遵循 Optimism 的节点配置说明。

1. Docker 配置方式

Optimism 推荐的自托管节点搭建方法是使用其提供的Docker 镜像。

使用 Docker 镜像搭建节点,可以跳过许多配置步骤,因为这些镜像已经包含了大部分配置设置。

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

  1. 将节点的 Github 仓库克隆到你的机器上
  2. 配置节点设置
  3. 运行你的自托管 Optimism 节点

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

辅助的 L2 Optimism 节点将被你的 Optimism 节点用于验证其正确性,而 Ethereum(L1)RPC 节点用于检查节点的状态根,并通过 CTC(CanonicalTransactionChain)从 L1 下载 L2 区块。

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

使用这种 Docker 配置方式,你的节点将获得一系列额外功能,帮助你维护该节点。

healthcheck 服务如何工作?

healthcheck 服务会定期将你的节点状态与参考节点的状态进行比较——确认你的节点正在正常同步。fault detector 会扫描来自 Optimism sequencer 的交易,并将结果与你节点上计算出的交易进行比较。最后,一个本地托管的仪表盘会让你方便地访问基本的节点指标,包括 fault 数据、DTL 同步情况等。

2. 非 Docker 配置方式

如果预配置的 Docker 镜像无法提供足够的自定义空间,Optimism 也描述了独立搭建节点的框架。不过,他们并不推荐以这种方式搭建节点。

尽管这些说明经过了测试,但其稳健性不如 Docker 配置方式。这种方法存在搭建出功能不佳节点的风险。以下是说明的概要。

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

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

  • ‍Libusb - Geth 用来检测硬件钱包的库
  • Node.js - 一种 JavaScript 运行环境
  • ‍Yarn - 一款常用的 Node.js 包管理器
  • Go - 该编程语言
  1. 搭建 Data Transport Layer

DTL 是你节点软件的第一部分。在这一步,你将下载源代码、编辑其配置,并运行该层。

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

运行后,管理 DTL 以确保其与 Optimism 正确同步。

  1. 搭建 Optimism 客户端

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

运行自托管节点是希望对 Optimism 节点配置拥有更多控制权的资深 web3 开发者的一种替代选择。但是,选择启动和维护自托管节点比使用像 Alchemy 这样的 Optimism 节点提供商和开发者平台更为昂贵和耗时。

哪种类型的 Optimism 节点最适合我?

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

即使你只是 Optimism 上的普通交易者或 dApp 用户,为 MetaMask 钱包更新一个专用的 Optimism 端点也能提供更快更可靠的服务。

立即开始使用市面上最强大的免费 Optimism 节点提供商套餐,借助 Alchemy 释放你的 dApp 的全部潜力。

Background gradient

构建区块链应用

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