公共 vs私人vs自托管 哪种 Optimism 节点更好?

作者:Alchemy

来源:alchemy.com

为了从 Optimism 检索数据,dApp 需要通过 RPC (Remote Procedure Call,远程过程调用)节点发送检索请求。

在这篇文章,我们将探索 Optimism 上用于 web3 开发支持的不同类型的节点。

什么是 Optimism?

Optimism 是以太坊二层(L2)的扩容解决方案,它利用 optimistic rollup 的这一技术解决方案使得每秒 2000 笔交易的处理成为可能。

Optimism 基于一套清晰的核心设计理念去设计以及维护他们的区块链网络。

  • 简约性

  • 实用主义

  • 可持续性

  • 乐观主义

什么是 optimistic rollup?

optimistic rollup 通过将计算和数据储存迁移至链下,利用以太坊的安全性来提升以太坊基础层的吞吐量并改善它的网络延迟。

Optimism 创造了一种在 L2 链上进行许多交易的 rollup 技术,将交易捆在一起。

接着,rollup 协议乐观地假设了所有这些交易的有效性,并将打包的 rollup 交易捆提交至以太坊的一层(L1)链。

什么是 Optimism 节点?

Optimism 节点是一个程序,运行在单个计算机上,让构建者和交易员与 Optimism 区块链网络中的其他人连接。

Optimism 节点包括了两个重要组件:数据传输层(the Data Transport Layer)和客户端软件

数据传输层(DTL)

数据传输层是 Optimism 和以太坊之间的联系。而托管在以太坊上的智能合约 ——(CanonicalTransactionChain,CTC)合约 —— 包含着所有发布至 Optimism 区块链的一系列区块。

DTL 会通过检索之前发布至 CTC 的区块,定期在一个节点上构造 Optimism 区块链。如果没有 DTL,Optimism 的节点将无法及时获取 L2 optimistic rollup 构造的区块数据。

客户端软件

与 DTL 一起运行的是 Optimism 的客户端软件。

Optimism 的客户端与 Geth(又称 Go Ethereum)的原生版本几乎一样 —— Geth 是最广泛使用的以太坊客户端。

就其本身而言,Optimism 和以太坊非常相似,都可以使用共享的 EVM,相似的计费结构和 gas 计量等。

在 Optimism 上开发的大好处就在于,大多数以太坊上运作的工具也能在 Optimism 上使用,几乎不用修改代码。

为什么需要一个 Optimism 节点?

构建一个 Optimism 的应用程序需要通过 optimistic rollup 发布交易至 CTC。

此外,Optimism 节点允许 dApp 检索关于 Optimism 区块的数据。为了支持 Optimism 上高性能的 dApp,必须要有一个功能完善的节点。

Optimism 的节点类型

有几种将 dApp 连接到 Optimism 节点的选择,包括私人 Optimism 节点、使用 Optimism 公共 RPC 节点的端点,以及自行运行、自托管的节点。

大部分 Optimism 的开发者会使用如 Alchemy 等 Optimism 节点提供商的私人 RPC 端点,因为公共端点和自托管的节点都有许多的劣势,包括低吞吐量、高设置开销,并且需要更多的工程维护支持。

1. 公共 Optimism 节点

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

尽管公共端点也有技术支持,但 Optimism 强调公共 RPC 端点已经完全不适合产品级别的项目使用了。

Optimism 的公共端点会限速应用程序,而且经常只支持有限的 JSON-RPC 方法。

2. 私人 Optimism 节点提供商

如果 Optimism 公共节点吞吐量的不足限制着用户的应用程序或交易,那么 Optimism 节点的专门提供商的私人 Optimism RPC 端点则能让工程师访问可靠的、可扩展的 Optimism 节点。

Alchemy 是 Optimism 推荐的节点提供商,Alchemy 除了拥有 web3 中最可靠的 Optimism 节点性能之外,它提供 Optimism 的开发者以一系列的主机开发工具,包括 Alchemy Build、Minitor 和 Optimism webhooks,这些都是为了给予开发者最好的 Optimism 开发经验而设计的。

如何使用 Alchemy 的私人 Optimism RPC 端点?

Alchemy 提供着强大的免费层,让用户能够以一个可靠的私人 Optimism RPC 端点开始。

在 Alchemy 中创建一个新的 Optimism 应用

注册后创建一个免费的账户或是登录你现有的账户

点击 dashboard 右上方“Create APP”的按钮

Alchemy 开发者平台 dashboard

现在请填写下列的部分,包括:

  1. 命名你的应用

  2. 填写描述

  3. 选择“Optimism”作为你的“链”

  4. 选择“Optimism 主网”作为你的网络

如果你想要在 Optimism 的 Goerli 测试网上创建或迁移应用,你可以选择“网络”下拉式列表中的 Goerli 测试网。

使用 Alchemy 创建一个私人 Optimism RPC 端点

接下来,点击 dashboard “View Key(查看密钥)”的按钮来查看你的 HTTPS 密钥并开始发送请求至你的新节点上!

从 Alchemy 应用的 dashboard 上复制你的 Optimism RPC 端点的 URL

现在,请替换你应用中的 Optimism RPC URL,通过 Alchemy 专门提供的 Optimism 端点开始发送流量。

3. 自托管的 Optimism 节点

为了完成对自己节点的配置和实现的控制,开发者可能会选择运行自己的 Optimism 节点(比如,自托管的节点)。

设置 Optimism 节点的第一步是确定自己的节点硬件。在这方面,Optimism 建议系统需要满足:

  • 至少有 16 GB 的内存

  • 一个至少有 100 GB 可用空间 SSD(固态硬盘)

在确定硬件后,Optimism 提供商指定了两种设置用户自托管节点的方式:一种是使用 Docker 的配置,而另一种是不使用 Docker 的配置

以下是对两种设置 Optimism 节点方式的总结。如果你决定要设置一个节点,可以跟着 Optimism 的节点配置指示。

(1) Docker 的配置

Optimism 推荐的设置自托管节点的方法就是使用他们的提供的 Docker 镜像。

通过设置节点的 Dokcer 镜像,你可以跳过很多配置步骤,因为该镜像已经设置了大多数配置。

这里是使用 Docker 配置步骤的简要概述:

  1. 在你的计算机上克隆节点的 Github 仓库

  2. 配置节点设置

  3. 运行自托管的 Optimism 节点

在第二步,你将必须提供多个其他节点,另一个 L2 Optimism 节点和 L1 的 RPC 节点。

另一个的 L2 Optimism 节点将会由你的 Optimism 节点用来验证其正确性,而以太坊(L1)的 RPC 节点则用来检查你的节点状态根,并通过 CTC 从 L1 下载 L2 的区块。

Optimism 建议使用 RPC 提供商的支持节点

使用这个 Docker 配置,你的节点将会从一些额外功能中受益,帮助你维护节点。

网络健康检测服务怎么进行?

网络健康检测服务会定期把你的节点状态和参考节点的状态进行对比,确保你的节点正确进行同步。

错误检测器会扫描来自 Optimism 定序者的交易并对比在你节点上计算的交易结果。

最后,本地托管的 dashboard 会让你轻松地访问基本的节点衡量标准,包括故障数据、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 创世节点的状态,创建和配置它的环境,运行其配置并在最后开启客户端。

对于想要更多地控制自己的节点配置的专业 web3 开发者来说,运行自托管节点只是另外一种选择。但是,比起使用 Optimism 节点提供商以及 Alchemy 等开发者平台,启动和管理自托管节点是更加昂贵且耗费时间的选择。

哪种 Optimism 节点最适合我?

在大多数情况下,通过 Alchemy 使用私人 Optimism 端点是最好的选择。

公共 Optimism 端点不应该服务于产品级别项目的流量,除非你是专业的基础设施工程师,不然你就不应该管理自己的 Optimism 节点。

即使你是 Optimism 上临时的交易员或者的 dApp 用户,用一个专门的 Optimism 端点来更新自己的 Metamask 钱包也可以为自己提供给更快且更可靠的服务。

从今天开始,在市场中使用强大的、免费的 Optimism 节点提供商层,用 Alchemy 来释放你的 dApp 全部的力量。