跳至內容
0%

自行架設節點的優缺點

Alchemy team headshot

作者 Alchemy

發布於 2023年3月26日閱讀時間 1 分鐘

執行節點代表在機器上安裝「客戶端」軟體,負責下載、驗證並在區塊鏈網路中傳播新區塊。

目前節點客戶端軟體分為兩種類型:執行客戶端(execution clients)與共識客戶端(consensus clients)。執行層客戶端負責管理區塊鏈的整體狀態並完成交易,共識層客戶端則負責驗證交易。

為了在網路中傳播交易,節點會使用一系列 P2P 網路協定來發現新節點、建立安全連線,並同步狀態、區塊與待處理交易。

應該自行運行節點,還是使用代管叢集?

自行運行節點讓你完全掌控節點軟體、設定與硬體,但這是一項持續的營運承諾。維護、時間與可靠性都成為你團隊的工作(取捨詳見下文)。另一種選擇是代管叢集:由供應商為你運行的單租戶節點,讓你獲得自行運行節點的大部分控制權,而不必承擔營運負擔,例如 Alchemy 的 Dedicated Clusters。

當你需要任何供應商都不開放的系統層級控制時,選擇自行運行節點。當你希望獲得單租戶隔離、在特定地區部署,或使用客製化 tracer,而又不想組建基礎設施團隊時,使用代管叢集。若要並排比較兩者,請參閱我們關於如何在共用與專屬基礎設施之間做選擇的指南。

什麼是 Ethereum 節點?

Ethereum 節點是運作於 Ethereum 區塊鏈上的節點,主要分為三種類型:輕節點(light node)、全節點(full node)與存檔節點(archive node)。

1. 全節點

全節點客戶端會驗證每個新區塊中的所有交易,協助確保網路安全,並確認交易資料的有效性。

2. 輕節點

輕節點儲存的是區塊標頭資料,例如前一個區塊的雜湊值與時間戳記,而非像全節點一樣儲存完整的區塊資料。

輕節點會向全節點傳送隨選請求,僅驗證其使用者所需要的狀態部分。

3. 存檔節點

存檔節點持有與全節點相同的資料,並額外保存整個區塊鏈自創世區塊(Genesis Block,即第一個區塊)以來的完整歷史狀態資料。

為什麼要運行 Ethereum RPC 節點?

Web3 開發者可能會選擇運行 Ethereum RPC 節點,以讀取及寫入區塊鏈上的資料。部分開發者選擇運行自己的節點,以自訂節點設定、提升安全性,並進行使用 RPC 供應商的共享或專屬節點所無法達成的系統層級最佳化。

運行自有 Ethereum 節點有哪些優點?

運行 Ethereum 節點主要有四項優點:隱私與安全性、抗審查性、去中心化,以及自主性。

1. 隱私與安全性

使用共享節點時,你的交易會與其他公司共用相同的硬體,這對你的特定產品而言可能構成合規或安全上的風險。

部分團隊會偏好使用專屬節點,透過運行自己的節點來確保完全隔離與自主性,或是選用提供專屬節點的節點供應商。

2. 抗審查性

維護自己的節點能讓你在任何時候都能保證將交易廣播給網路上的其他節點。若使用第三方節點,供應商可能會封鎖來自你特定 IP 位址的交易,或封鎖傳送至特定智能合約地址的交易。

3. 去中心化

運行自己的節點代表你不需要依賴集中式的基礎設施供應商來運行節點。不過,仍有其他需要考量的中心化因素,例如你所選擇的雲端供應商(例如 AWS、GCP 等),或者若採用裸機配置,則是伺服器所在位置(例如維吉尼亞州、德國等)。

若你的資料中心或雲端供應商發生停機事件,自行管理節點的 web3 開發者應評估其供應商、建立具容錯能力的架構,並記錄業務持續營運計畫。

4. 自主性

開發者運行自己的節點,可完全掌控偏好的節點軟體客戶端、這些節點客戶端的設定方式、硬體的數量與組成,以及其他硬體層面的決策。

這種彈性程度,對於某些 RPC 節點供應商無法提供同等硬體與軟體設定細緻選擇的特定 web3 應用情境而言,可能意味著更好的效能。

自架節點 vs. 使用節點供應商
說明自架節點與使用像 Alchemy 這樣的節點供應商有何不同的示意圖。

自行運行節點有哪些取捨?

相較於使用 RPC 節點供應商,自行運行節點主要有三項取捨,包括維護成本、時間成本,以及可靠性成本。

1. 維護成本

運行自己的全節點需要專用硬體(例如 RAM、儲存空間等)來下載、驗證並儲存交易資訊。維護硬體以因應不斷變化的產品使用量,對於在不超支的情況下兼顧容量與客戶端容錯能力而言相當重要。

運行節點的維護成本,會高度取決於你是否使用像 Amazon Web Services 這類供應商、是否運行裸機伺服器、工程時間投入,以及你的特定應用所需的硬體與頻寬資源量。

2. 時間成本

運行與維護區塊鏈節點可能牽涉許多技術問題,對初學者來說可能既困難又耗時。

對於資金與工程時間有限的 web3 新創公司而言,將可觀的工程資源投入到自行管理基礎設施,代價是無法專注於打造產品的核心功能。

此外,隨著你的 web3 產品規模擴大,你的工程資源也需要相應擴展,以維護一批可靠的自行管理節點,確保正常運行時間與容量能支援更多使用者。

3. 可靠性成本

考慮自行運行節點的新創公司,會面臨諸多可靠性問題,例如軟體更新中的錯誤、CPU 使用率飆升、記憶體洩漏、磁碟問題、不穩定的對等連線,以及跨節點群的資料準確性問題。

不可靠的節點不僅會佔用工程師原本可用於打造產品核心功能的時間,還會直接影響使用者體驗。

當節點停機時,使用者將無法使用你的產品,這可能帶來許多潛在的連鎖影響,例如使用者流失至其他替代產品。

Alchemy 以四種方式協助 Web3 開發者處理節點基礎設施

Alchemy 是領先的 web3 開發者平台,為 Ethereum、Polygon、Optimism、Arbitrum 等鏈上頂尖的去中心化應用提供支援。

以下列出 Alchemy 打造的工具,確保開發者能存取可靠的節點基礎設施,以及一流的開發者工具。

Alchemy 的 Cortex 引擎

Alchemy 的 Cortex 引擎驅動我們的節點基礎設施,以一批節點取代自行架設的區塊鏈節點,讓開發者能透過單一端點與之互動。

Cortex 提供的主要優勢:

  • 99.9% 的可靠性
  • 動態擴展能力
  • 資料正確性
  • 無需設定或同步時間
  • 測試網
  • 增強型 API
Alchemy Cortex 架構簡化圖。
Alchemy Cortex 架構簡化圖。

‍

Alchemy Build

Alchemy 也提供一套自有的開發者工具套件,協助捕捉錯誤並加快產品交付速度。透過 Alchemy Build,開發者可以立即搜尋數百萬筆請求、檢視即時的 mempool 交易、直接從瀏覽器發出 JSON-RPC 呼叫等等。

Alchemy Build 的開發者工具套件包含:

  • Composer - 透過簡單的線上介面即時測試 API 呼叫
  • Explorer - 搜尋歷史請求以偵錯交易
  • Mempool Visualizer - 檢視 mempool 中交易的即時狀態
開發者儀表板中的 Alchemy Build。
開發者儀表板中的 Alchemy Build。

Alchemy Monitor

Alchemy 透過強大的指揮中心協助你監控應用程式的健康狀態,讓你能即時查看回應時間、使用量分析、洞察與警示,並搭配每日報告,確保你隨時掌握最新狀況。

Alchemy 的監控工具為開發者提供:

  • 應用程式監控與警示
  • 具應用程式層級細節的儀表板
  • 地理視覺化,了解使用者所在位置
  • 使用量統計,了解你的應用程式如何被使用

‍Alchemy 支援

Alchemy 提供專業且親自處理的技術支援,並維護 Alchemy Status Page,讓使用者隨時掌握我們 API 的狀態。

  • 98% 的客戶滿意度(CSAT)分數
  • 可直接聯繫 Customer Product Engineers
  • 連結產業中的其他人脈

如有緊急需求,請寄送支援工單至 support@alchemy.com!

Background gradient

打造區塊鏈魔法

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