跳至內容
0%

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

Alchemy team headshot

作者 Alchemy

發布於 2022年9月27日閱讀時間 2 分鐘

與Ethereum mainnet類似,Polygon 這個 Layer-2 解決方案也使用節點來確保所有參與網路的電腦行為正確。不過 Polygon 節點的架構不同——它會將處理任務分類並委派給不同的節點層。

在本文中,我們會介紹 Polygon 節點的各種類型、如何建立與執行 Polygon 節點,以及節點供應商如何讓整個流程更簡便。

什麼是 Polygon?

Polygon 是一條側鏈,也是一種 Ethereum 擴展方案,藉由將資源密集的任務移到主 Ethereum 區塊鏈之外執行來降低 gas 成本、提升可擴展性,同時維持與Ethereum Virtual Machine(EVM)的相容性。

Polygon 前身為 MATIC,於 2017 年更名,但仍保留 MATIC 作為其代幣符號。因此 Polygon 和 MATIC 是同一個東西。Polygon 目前的測試網為 Polygon Amoy,開發者可在此測試 Polygon 應用程式而不需使用真實資金。舊有的 Mumbai 測試網已被淘汰。

什麼是 Polygon 節點?

‍Polygon 節點是下載了 Polygon 區塊鏈副本並參與 Polygon 網路的電腦,但由於 Polygon 有多種節點類型——Bor 節點、Heimdall 節點、full node、Sentry 節點,以及 validator 節點——每種節點各有不同用途。

Polygon 網路大致分為三層:

  1. Ethereum mainnet - 用於合約的 Proof-of-Stake、checkpoint 以及獎勵發放
  2. Heimdall 節點層 - 用於驗證
  3. Bor 節點層 - 用於產生區塊

以下我們會更詳細介紹 Heimdall 和 Bor 節點,以及它們如何協同運作以完成更複雜的功能。

什麼是 bor 節點?

**Bor 節點是最基本的 Polygon 節點類型,負責將交易彙整成區塊,之後可供 Heimdall 節點解析與使用。**這樣一來,Bor 節點就像是 roll-up 機制的其中一半,將資料彙整成更容易處理的形式。區塊生產者是從一組 validator 節點中隨機挑選出來的。

什麼是 heimdall 節點?

**Heimdall 節點會驗證自上一個 checkpoint 以來的所有 Bor 區塊,然後將 Bor 節點所產生的所有區塊彙整成一棵 Merkle tree。**Heimdall 節點也會定期將 Merkle root 的 hash 傳送到主鏈。Checkpoint 對 Polygon 系統來說極為重要,因為它們管理著區塊生產者的隨機性,以及某個 span 或一組區塊的 validator 集合選擇。

什麼是 full node?

Full node 是完整驗證交易與區塊的節點,分為兩種:1) pruned full node 和 2) archival full node,也稱為 archive node。

Pruned full node 會捨棄所有失敗交易的狀態,且只保留一定數量的區塊以維持輕量化。Archive node 則是同時保存鏈上所有歷史狀態的 full node。基本上,archive node 包含了從創世區塊到最新交易的完整鏈上狀態。

Polygon archive node 可能會遇到的一個問題是archive node limit,因為整條鏈的狀態資料已接近 16TB。因此建議增加節點儲存空間、刪除並重新同步節點以清除浪費的資料,或是改用 Polygon 節點供應商。

什麼是 sentry 節點?

Sentry 節點是同時執行 Heimdall 與 Bor 節點的 full node,用來從其他節點下載資料並將資料傳送給指定的 validator 節點,同時也能存取整個 Polygon 網路。Sentry 節點也將 validator 與外部隔離,能保護 validator 節點免受如分散式阻斷服務攻擊(DDOS)等攻擊向量的影響,這類攻擊可能會拖慢或中斷交易處理。

什麼是 Polygon validator?

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

什麼是 Polygon 節點供應商?

Polygon 節點供應商是提供開發者 Polygon 節點 API endpoint 的公司,讓apps能夠向 Polygon 區塊鏈傳送請求並接收 payload,而不需要自行運行 Polygon 節點。

雖然自行運行 Polygon full node 有一些好處,例如可以自訂軟體客戶端,但節點供應商在穩定性、速度與資料準確性方面,相較於個別 Polygon 節點提供了顯著的優勢。節點維護需要耗費寶貴的工程時間,而節點供應商可以解決這個常見問題。

對 apps 來說,選擇最佳的 Polygon 節點供應商是為擴展規模及應對使用者需求所做的重要決策。從基礎設施角度來看,最重要的因素包括可擴展性、資料準確性、節點類型(例如 full、archive 等),以及支援的區塊鏈(若計畫建構多鏈應用)。

從使用者角度來看,節點供應商是否提供合理的定價、有幫助的開發者關係團隊、反應迅速的支援人員,以及更好的開發者工具(如經過優化的 API 與 SDK),以有效滿足 web3 開發者的需求,同樣十分重要。

如何在 Alchemy 上連接到 Polygon 節點

Polygon 官方文件中有如何使用 Alchemy 連接到 Polygon full node的完整說明,這裡提供簡化版本,讓你能快速上手。

1. 註冊 Alchemy

Alchemy 提供免費方案,你可以快速在 Alchemy 開發者平台上建立免費的 Polygon 帳號,以使用 Alchemy Polygon API。

登入後的 Alchemy 儀表板
登入後的 Alchemy 儀表板

‍

  1. 建立你的 Polygon 應用程式並產生 API key

成功建立 Alchemy 帳號後,你需要透過建立一個 app 來產生 API key。這用來驗證發送到 Polygon mainnet 或 Polygon Amoy 測試網的請求。

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

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

你的新 app 應該會出現在下方的表格中。

Alchemy 儀表板中顯示新建立 Polygon app 的 Apps 表格
新 app 出現在「Apps」表格中

若要從 Alchemy 取得你專屬的 Polygon RPC URL,請前往 Alchemy 儀表板中的 app,並點擊右上角的「View Key」。

接著複製你的 Alchemy HTTPS API key,並貼到你的應用程式中。

**注意:**可以使用 Alchemy Chain Connect 來檢視來自多家基礎設施供應商的公開 Polygon RCP URL。

「View Key」選項,用來為節點設定 Polygon RPC URL
「View Key」選項,用來為節點設定 Polygon RPC URL

‍

第 3 步:設定 Polygon API 並開始建構

若你使用 JavaScript 和 Node.js,可以搭配 Alchemy 的 Polygon RPC endpoint 使用如 ethers.js 這類標準函式庫。

  1. 使用以下指令建立專案:npm init -y
  2. 在終端機執行以下指令安裝 ethers.js:npm install ethers。
  3. 使用你的 endpoint 設定 ethers.js:import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider("https://polygon-mainnet.g.alchemy.com/v2/<API_KEY>");

有關使用 Alchemy API 的更多細節,請參閱Alchemy 文件。

為 Polygon 節點專案匯入 Alchemy SDK 的程式碼片段
為 Polygon 節點專案匯入 SDK

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

Polygon 節點需求

要運行 Polygon full node,需要滿足一些技術規格與軟體前置條件。目前的最低需求為 16-32 GB 的 RAM 與 4-8 核心 CPU,並具備最低可擴充至 1.2TB 的儲存空間。由於節點需要儲存的資料會隨著鏈的歷史增長而持續增加,最低規格也會相應提高。

此外,雖然 Polygon 表示任何作業系統都能正常運作,但他們指出像 CentOS 這類 Linux 伺服器發行版在安全性與穩定性方面優於 MacOS 和 Windows,因此更為推薦。

如何設定 Polygon full node

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

1. 建置運行節點的機器

由於建議使用 Linux,你會需要一台運行 Linux 伺服器的機器來承載你的節點。你也可以使用命令列上的 Secure Shell(SSH)遠端連接到 Linux 伺服器。先查看硬體需求,確保你的機器有足夠大的最低儲存空間與運算能力。

2. 下載前置需求

在軟體需求方面,Ansible 應安裝在具備 Python 3.x 的機器上,可透過以下指令安裝:pip3 install ansible

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

3. 設定並執行你的節點

所有指示皆來自Polygon 官方文件中關於設定與運行 full node 的說明。步驟摘要如下:

  1. 確認能存取遠端機器/虛擬機器,複製(clone)指定的 repository,並透過設定 IP 來驗證其功能是否正常
  2. 設定 full node,進入遠端/虛擬機器,並配置 Heimdall 與 Bor 節點
  3. 運行 full node,並檢查日誌以確認節點是否正確同步

開始使用 Alchemy 在 Polygon 上建構

Polygon 是一條快速成長的 Ethereum 側鏈,為開發者提供快速、經濟實惠且可擴展的區塊鏈,用於建構與 EVM 相容的應用程式。由於其規模、經濟性與低碳足跡,Polygon 已成為部分大型 web2 公司的選擇,例如 Starbucks 的新忠誠獎勵計畫。

想開始在 Polygon 上建構,現在就到 Alchemy 建立免費的 Polygon 開發者帳號吧!

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。