---
title: "什麼是 Polygon 節點：你需要知道的一切"
description: "了解 Polygon 節點的主要類型，以及如何透過 Polygon 節點供應商開始建置"
---

# 什麼是 Polygon 節點：你需要知道的一切

與[Ethereum 主網](https://www.alchemy.com/rpc/ethereum)類似，[Polygon 這個 Layer-2 解決方案](https://www.alchemy.com/layer2/polygon)使用節點來確保所有參與網路的電腦行為正確。不過，Polygon 節點採用不同的架構——它會將處理任務分類並委派給不同的節點層。

在本文中，我們將介紹 Polygon 節點的不同類型、如何建立及執行 Polygon 節點，以及節點供應商如何簡化整個流程。

## 什麼是 Polygon？

Polygon 是一條側鏈，也是[**一種 Ethereum 擴容方案**](https://www.alchemy.com/overviews/sidechains-vs-layer2s)，它透過在主 Ethereum 區塊鏈之外執行資源密集型任務來降低 gas 成本並提升可擴展性，同時維持與[Ethereum Virtual Machine](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)（EVM）的相容性。

Polygon 前身為 MATIC，於 2017 年更名，但保留 MATIC 作為其代幣代號。因此 Polygon 與 MATIC 實為同一項目。Polygon 主要的測試網路稱為 Mumbai。Mumbai 是一個測試網，開發者可在其中[使用測試用的 MATIC 代幣來測試 Polygon 應用程式](https://www.alchemy.com/overviews/mumbai-testnet)，而無需花費任何成本。

## 什麼是 Polygon 節點？

**Polygon 節點是下載了 Polygon 區塊鏈副本並參與 Polygon 網路的電腦，但由於 Polygon 有多種節點類型——Bor 節點、Heimdall 節點、完整節點、Sentry 節點以及驗證者節點——每種節點都有各自不同的用途。**

Polygon 網路大致分為三層：

1. **Ethereum 主網**——用於合約權益證明（Proof-of-Stake）、檢查點（checkpointing）與獎勵
1. **Heimdall 節點層**——用於驗證
1. **Bor 節點層**——用於產生區塊

以下我們會更詳細地介紹 Heimdall 與 Bor 節點，以及它們如何協同運作以實現更複雜的功能。

### 什麼是 bor 節點？

**Bor 節點是最基礎的 Polygon 節點類型，負責將交易聚合成區塊，之後 Heimdall 節點便可解析並運用這些區塊。**如此一來，Bor 節點便扮演了 roll-up 機制中的一半角色，將資料聚合成更易於處理的形式。區塊生產者是從一組驗證者節點中隨機選出的。

### 什麼是 heimdall 節點？

**Heimdall 節點會驗證自上一個檢查點以來的所有 Bor 區塊，然後將 Bor 節點所建立的所有區塊聚合為一棵 Merkle 樹。**Heimdall 節點也會定期將 Merkle 樹根的雜湊值傳送至主區塊鏈。檢查點對 Polygon 系統而言極為重要，因為它們管理著區塊生產者的隨機性，以及特定 span 或區塊集合的驗證者集合選擇。

### 什麼是完整節點？

完整節點是能完整驗證交易與區塊的節點，分為兩種類型：1）修剪型完整節點（pruned full node），以及 2）歸檔型完整節點（archival full node），也稱為 archive node。

修剪型完整節點會捨棄所有失敗的交易狀態，且僅回溯特定數量的區塊，以維持較輕量化。**Archive node** 是同時保存鏈上所有歷史狀態的完整節點。本質上，archive node 保存了從創世區塊到最新交易的鏈上確切狀態。

Polygon archive node 可能遇到的一個問題是 [archive node 上限](https://www.alchemy.com/blog/polygon-archive-node-limit)，因為整條鏈的狀態資料已接近 16TB。因此，建議增加節點儲存空間、刪除並重新同步節點以清除多餘資料，或是使用 Polygon 節點供應商。

### 什麼是 sentry 節點？

sentry 節點是一種同時執行 Heimdall 與 Bor 節點的完整節點，用於從其他節點下載資料並將資料傳送至指定的驗證者節點，同時也能存取整個 Polygon 網路。sentry 節點還能將驗證者與公眾隔離，並保護驗證者節點免受分散式阻斷服務（DDOS）攻擊等攻擊向量的侵害，這類攻擊可能會拖慢甚至中斷交易吞吐量。

### 什麼是 Polygon 驗證者？

**Polygon 驗證者是指在一台機器上執行驗證者節點、在另一台機器上執行 sentry 節點，並質押 MATIC 代幣的人。**Polygon 驗證者會被隨機選中，於 Heimdall 層驗證交易。驗證者節點的架構與 sentry 節點類似，差別在於它是資料傳入與傳出 sentry 節點的方式。

## 什麼是 Polygon 節點供應商？

[**Polygon 節點供應商**](https://www.alchemy.com/overviews/blockchain-node-providers)是為開發者提供 Polygon 節點 API 端點的公司，讓[應用程式](https://www.alchemy.com/dapps/top/defi-dapps)可以向 Polygon 區塊鏈發送請求並接收回傳資料，而無需自行執行 Polygon 節點。

雖然擁有自己的 Polygon 完整節點有一些好處，例如可自訂軟體客戶端，但相較於個人自行架設的 Polygon 節點，節點供應商在穩定性、速度與資料準確性方面提供[顯著的優勢](https://www.alchemy.com/overviews/running-your-own-node)。擔心節點維護會耗費寶貴的工程時間，而節點供應商能解決這個常見的問題。

對應用程式而言，在為擴展規模與使用者需求進行建置時，[選擇最佳的 Polygon 節點供應商](https://www.alchemy.com/overviews/how-to-choose-a-blockchain-node-provider)是一項重要決策。從基礎設施角度來看，最關鍵的因素包括可擴展性、資料準確性、節點類型（例如完整節點、archive 節點等），以及支援的區塊鏈（若你計畫建置多鏈應用）。

從客戶角度來看，節點供應商是否有良好的定價、給力的開發者關係團隊、反應迅速的支援人員，以及更完善的開發者工具（如經過最佳化的 API 與 SDK），以有效滿足 web3 開發者的需求，同樣十分重要。

## 如何在 Alchemy 上連接 Polygon 節點

Polygon 官方文件中提供了[如何使用 Alchemy 連接 Polygon 完整節點](https://wiki.polygon.technology/docs/develop/alchemy/)的完整說明，但以下是為了快速上手所整理的簡化版說明。

### 1. 註冊 Alchemy

Alchemy 提供免費方案，你可以快速[在 Alchemy 開發者平台上建立免費的 Polygon 帳號](https://www.alchemy.com/layer2/polygon?a=c2ee97cb63)，以使用 Alchemy Polygon API。

<ImageBlock
  src="https://media.alchemy.com/1704120746-alchemy-sign-in-dashboard.jpeg"
  alt="登入後的 Alchemy 儀表板"
  width={1119}
  height={532}
  caption="登入後的 Alchemy 儀表板"
/>

### ‍

2. 建立你的 Polygon 應用程式並產生 API 金鑰

成功建立 Alchemy 帳號後，你需要透過建立一個 app 來產生 API 金鑰。此金鑰用於驗證發送至 Polygon 主網或 Mumbai 測試網的請求。

若要產生新的 API 金鑰，請前往 Alchemy 儀表板導覽列的「Apps」分頁，並選擇「Create App」子分頁。

填寫完欄位並選擇測試網後，點選「Create app」。

你的新 app 應會顯示在下方的表格中。

<ImageBlock
  src="https://media.alchemy.com/1704120772-alchemy-apps-table.jpeg"
  alt="Alchemy 儀表板中顯示新建立 Polygon 應用程式的 Apps 表格"
  width={1123}
  height={533}
  caption="新的應用程式出現在「Apps」表格中"
/>

若要取得 Alchemy 提供的自訂 Polygon RPC URL，請前往 Alchemy 儀表板中的該 app，並點擊右上角的「View Key」。

接著複製你的 Alchemy HTTPS API 金鑰，並將其貼入你的應用程式中。

**注意：** 使用 Alchemy Chain Connect 可以查看來自多個基礎設施供應商的[公開 Polygon RCP URL](https://www.alchemy.com/chain-connect/chain/polygon-pos)。

<ImageBlock
  src="https://media.alchemy.com/1704120810-alchemy-view-key.jpeg"
  alt="用於設定節點 Polygon RPC URL 的「View Key」選項"
  width={1113}
  height={269}
  caption="用於設定節點 Polygon RPC URL 的「View Key」選項"
/>

‍

### 步驟 3. 設定 Polygon API 並開始建置

如果你使用 JavaScript 與 Node.js，只需安裝 Alchemy SDK、建立一個 Alchemy 物件，就能在短短幾行程式碼內開始發出 Polygon 節點請求。

1. 使用以下指令建立專案：npm init -y
1. 在終端機中執行以下指令安裝 SDK：npm install alchemy-sdk。
1. 安裝 SDK 後，你便可以在專案中引入並使用它，如下所示搭配 Polygon 使用

有關設定 Alchemy SDK 的更多細節，請參考 [SDK 快速入門指南](https://www.alchemy.com/docs/alchemy-quickstart-guide)。

<ImageBlock
  src="https://media.alchemy.com/1704120924-import-sdk-polygon-node.jpeg"
  alt="為 Polygon 節點專案匯入 Alchemy SDK 的程式碼片段"
  width={924}
  height={320}
  caption="為 Polygon 節點專案匯入 SDK"
/>

使用 Polygon 節點供應商既簡單又具擴展性，讓各種技術水準的開發者都能開始投入 web3 開發。
‍

## Polygon 節點需求

若要執行 Polygon 完整節點，須符合一定的[技術規格](https://docs.polygon.technology/docs/category/nodes/)與軟體先決條件。目前的最低需求為 16-32 GB RAM 與 4-8 核心 CPU，以及最低可擴充至 1.2TB 的儲存空間。由於節點需要儲存的資料會隨著鏈上歷史增長而不斷增加，最低規格也將隨之提高。

此外，雖然 Polygon 指出任何作業系統都能正常運作，但他們強調像 CentOS 這類 Linux 伺服器發行版在安全性與穩定性方面，優於 MacOS 與 Windows。

## 如何架設 Polygon 完整節點

如果你不想使用 Polygon 節點供應商，而是想自行設定並維護 Polygon 節點，以下是你需要執行的步驟摘要。

### 1. 建置用於執行節點的機器

由於建議使用 Linux，你會需要一台執行 Linux 伺服器的機器來託管你的節點。你也可以透過命令列使用 Secure Shell（SSH）遠端連接 Linux 伺服器。請先查看硬體需求，並確保你的機器擁有足夠大的最低儲存空間與運算能力。

### 2. 下載先決條件

在軟體需求方面，須在裝有 Python 3.x 的機器上下載 Ansible，可透過以下指令下載：pip3 install ansible

此外，請確保你未曾安裝 Go 或先前的 Heimdall 與 Bor 設定，因為這些會與全新的安裝流程產生衝突。

### 3. 設定並執行你的節點

以下所有說明皆來自 [Polygon 官方文件中關於設定並執行完整節點的說明](https://docs.polygon.technology/docs/develop/network-details/full-node-deployment/)。步驟摘要如下：

1. 確認可存取遠端機器／虛擬機器，複製指定的儲存庫，並透過設定 IP 來驗證其功能是否正常
1. 設定完整節點，進入遠端／虛擬機器，並設定 Heimdall 與 Bor 節點
1. 執行完整節點並檢查日誌，確認節點是否已正確同步

## 使用 Alchemy 開始在 Polygon 上建置

Polygon 是一條快速成長的 Ethereum 側鏈，為開發者提供了快速、經濟且可擴展的區塊鏈，用於建置與 EVM 相容的應用程式。由於其規模、經濟性與低碳足跡，Polygon 已成為一些最大型 web2 公司的選擇，例如星巴克的全新會員忠誠計畫。

要開始在 Polygon 上進行建置，立即向 Alchemy 建立一個[免費的 Polygon 開發者帳號](https://www.alchemy.com/layer2/polygon?a=c2ee97cb63)！
