---
title: "哪種 Optimism 節點最好？Public 與 private 與 self-hosted 比較"
description: "比較 Self-Hosted Nodes、Public RPC Endpoints 與 Private RPC Endpoints"
---

# 哪種 Optimism 節點最好？Public 與 private 與 self-hosted 比較

要從 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。

### **Data Transport Layer（DTL）**

**Data Transport Layer** 作為 Optimism 與 Ethereum 之間的聯繫。Ethereum 上託管著一個智慧合約——_CanonicalTransactionChain_（CTC）合約——其中包含所有已發布到 Optimism 區塊鏈的區塊清單。

DTL 會定期透過擷取先前已發布到 CTC 的區塊，在節點上建構 Optimism 區塊鏈。若沒有 DTL，Optimism 節點將無法與 L2 optimistic rollup 所建構的區塊保持同步。

### **Client Software**

與 Data Transport Layer 一同執行的是 **Optimism client software**。Optimism client 幾乎與原版的 [Geth](https://www.alchemy.com/overviews/what-is-a-geth-node-and-how-to-run-one)（即 Go Ethereum，最廣泛使用的 [Ethereum client](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 開發者會使用來自 Optimism 節點供應商（如 Alchemy）的私有 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 app：

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. 為你的 app 命名
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 儀表板：建立 Optimism 應用程式以取得私有 RPC 端點"
  width={1218}
  height={448}
  caption="使用 Alchemy 建立私有 Optimism RPC 端點。"
/>

接著，**點擊儀表板上的「View Key」按鈕**，即可檢視你的 HTTPS key，並開始向你的新節點傳送請求！

<ImageBlock
  src="https://media.alchemy.com/1704294644-view-key-alchemy-dashboard.jpeg"
  alt="從 Alchemy 應用程式儀表板複製你的 Optimism RPC 端點網址。"
  width={1253}
  height={547}
  caption="從 Alchemy 應用程式儀表板複製你的 Optimism RPC 端點網址。"
/>

現在，將你應用程式中的 Optimism RPC URL 替換掉，開始透過 Alchemy 提供的專屬 Optimism 端點傳送流量。

### 3. 自架 Optimism 節點

為了完全掌控節點的配置與實作方式，開發者可以選擇 [自行執行 Optimism 節點](https://www.alchemy.com/overviews/running-your-own-node)（即自架節點）。

設定 Optimism 節點的第一步是決定節點的硬體規格。針對此點，Optimism 建議系統至少具備：

1. 至少 16GB RAM
1. 至少 100GB 可用空間的 SSD（固態硬碟）

決定硬體之後，Optimism 提供兩種設定自架節點的方法：使用 Docker 的配置，以及不使用 Docker 的配置。

以下是這兩種設定 Optimism 節點方法的摘要。若你決定要設定節點，請依照 Optimism 的 [節點配置說明](https://community.optimism.io/docs/developers/build/run-a-node/)進行。

#### 1. Docker 配置

Optimism 建議設定自架節點的方法，是使用其提供的 [Docker images](https://hub.docker.com/u/ethereumoptimism)。

透過使用 Docker image 來設定節點，你可以跳過許多配置步驟，因為這些 image 已經包含大部分的配置設定。

**以下是使用 Docker 配置的高層級步驟概述：**

1. 在你的電腦上複製節點的 Github [repository](https://github.com/smartcontracts/simple-optimism-node)
1. 配置節點設定
1. 執行你的自架 Optimism 節點

在第二步中，你需要提供另外多個節點，包括另一個 L2 Optimism 節點以及一個 L1 RPC 節點。

次要的 L2 Optimism 節點會被你的 Optimism 節點用來驗證其正確性，而 Ethereum（L1）RPC 節點則用於檢查你節點的 state root，並透過 CTC（_CanonicalTransactionChain_）從 L1 下載 L2 區塊。

Optimism 建議這些輔助節點應來自 RPC 供應商。

使用此 Docker 配置，你的節點將可享有若干額外功能，協助你維護該節點。

##### healthcheck 服務如何運作？

healthcheck 服務會定期比較你的節點狀態與參考節點的狀態——確認你的節點正常同步中。fault detector 會掃描來自 Optimism sequencer 的交易，並將結果與你節點上計算出的交易進行比對。此外，本機託管的儀表板會讓你輕鬆存取基本的節點指標，包括 fault 資料、DTL 同步狀態等等。

#### 2. 非 Docker 配置

若預先配置好的 Docker image 無法提供足夠的客製化空間，Optimism 也提供了獨立設定節點的框架。不過，Optimism 並不建議以此方式設定節點。

雖然這些說明已經過測試，但其穩健程度不如 Docker 配置。此方法有可能設定出運作不良的節點。以下為此說明的摘要。

1. **安裝執行 Optimism 節點所需的套件與工具**

你需要安裝的套件與工具包括：

- ‍**Libusb** - Geth 用來偵測硬體錢包的函式庫
- **Node.js** - 一個 Javascript 執行環境
- ‍**Yarn** - 一款熱門的 Node.js 套件管理工具
- **Go** - 程式語言

2. **設定 Data Transport Layer**

DTL 是你節點軟體的第一個部分。在此，你需要下載原始碼、編輯其配置，並執行該層。

如同 Docker 配置的情況，這裡你也需要為你的自架 Optimism 節點提供另一個節點，以便其同步區塊。

執行後，需管理 DTL 以確保其與 Optimism 正確同步。

3. **設定 Optimism client**

設定 Optimism client 是你自架節點的第二個部分。你必須編譯原始碼、下載並驗證來自 Optimism genesis 的狀態、建立並配置其環境、執行配置，最後啟動該 client。

執行自架節點是給希望對其 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 全部潛力。
