以太坊作為全球第二大區塊鏈平臺,其節點網絡是支撐去中心化應用(DApp)、智能合約及整個生態系統的核心基礎設施,搭建以太坊節點不僅能深度參與網絡驗證與數據同步,還能為開發者提供本地測試環境,同時為網絡貢獻一份算力與存儲支持,本文將以主流的Ubuntu系統(以22.04 LTS為例)為環境,詳細介紹如何從零開始搭建一個完整的以太坊節點,涵蓋環境準備、軟件安裝、節點配置及維護等全流程。

搭建前的準備工作
在開始搭建節點前,需確保硬件、網絡及系統環境滿足基本要求,這是節點穩定運行的基礎。
硬件要求
以太坊節點分為全節點(存儲完整區塊鏈數據,參與共識驗證)和歸檔節點(存儲所有歷史數據,包括狀態根,支持更復雜的歷史查詢),不同類型節點對硬件的要求差異較大:
-
全節點:
- CPU:至少2核心(推薦4核心及以上,如Intel i5或AMD Ryzen 5);
- 內存:至少8GB RAM(推薦16GB,因狀態數據會持續增長);
- 存儲:至少1TB SSD(推薦2TB以上,因區塊鏈數據已超1TB且每日新增約50GB);
- 網絡:穩定的寬帶連接,上傳/下載速度建議≥10Mbps(需長期保持在線,避免因網絡中斷影響節點同步)。
-
歸檔節點:
- 存儲:至少4TB SSD(因需存儲所有歷史狀態數據,當前已超8TB且持續增長);
- 其他配置與全節點類似,但內存建議32GB以上,以應對更大的數據讀寫壓力。
系統環境準備
本文以Ubuntu 22.04 LTS為例(其他Ubuntu版本如20.04步驟類似),確保系統為64位架構,并已更新至最新狀態。
(1)更新系統
sudo apt update && sudo apt upgrade -y
(2)安裝必要依賴
sudo apt install -y build-essential curl git unzip wget software-properties-common
(3)配置防火墻
Ubuntu默認使用UFW防火墻,需開放以太坊節點的默認端口(主網P2P端口為30303,RPC端口如8545可根據需求調整):
sudo ufw allow 30303/tcp # 允許TCP連接(P2P通信) sudo ufw allow 30303/udp # 允許UDP連接(P2P發現) sudo ufw allow 8545/tcp # 可選:允許RPC連接(用于本地交互,如開發工具) sudo ufw enable # 啟用防火墻(根據提示確認)
選擇以太坊客戶端軟件
以太坊節點通過“客戶端”軟件實現,客戶端是連接用戶與以太坊網絡的橋梁,目前主流的以太坊客戶端分為執行層客戶端(處理交易、智能合約執行,原稱“以太坊客戶端”)和共識層客戶端(參與PoS共識驗證,原稱“驗證者客戶端”),根據節點類型,需選擇對應的組合:

| 節點類型 | 執行層客戶端 | 共識層客戶端 | 特點 |
|---|---|---|---|
| 全節點 | Geth、Nethermind | Lodestar、Prysm | 同步最新區塊,參與共識 |
| 歸檔節點 | Geth(歸檔模式) | Lodestar(歸檔模式) | 存儲完整歷史數據 |
| 輕節點/同步服務 | Geth(輕量模式) | 僅同步區塊頭,不存儲完整數據 |
對于大多數用戶,Geth(Go-Ethereum) Lodestar 是穩定且文檔完善的組合,本文將以該組合為例,介紹全節點的搭建流程。
安裝執行層客戶端:Geth
Geth是以太坊官方維護的Go語言客戶端,功能全面、社區活躍,支持全節點、歸檔節點及輕節點模式。
下載Geth
通過Geth官方GitHub Releases頁面下載最新穩定版本(以v1.13.0為例):
# 下載Linux amd64版本 wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.0-1d8ce3dc.tar.gz # 解壓 tar -xvzf geth-linux-amd64-1.13.0-1d8ce3dc.tar.gz # 移動至系統路徑 sudo mv geth-linux-amd64-1.13.0-1d8ce3dc/geth /usr/local/bin/
驗證安裝
geth version
若輸出版本信息(如geth version 1.13.0),則表示安裝成功。
初始化節點(創世區塊)
首次啟動節點前,需通過創世配置文件初始化本地數據目錄,以太坊主網的創世配置可通過Geth自動獲取:
# 創建數據目錄(默認路徑為~/.ethereum) mkdir -p ~/.ethereum # 下載主網創世配置并初始化 geth init --datadir ~/.ethereum https://github.com/ethereum/ethereum-protocol/raw/master/specs/genesis.json
執行后,~/.ethereum目錄下會生成genesis.json文件(創世區塊配置)和geth目錄(存儲鏈數據)。
安裝共識層客戶端:Lodestar
Lodestar是Chainlink團隊開發的TypeScript客戶端,支持PoS共識,具備良好的模塊化設計和歸檔節點支持。

安裝Node.js(依賴環境)
Lodestar基于Node.js運行,需安裝Node.js 18 版本:
# 通過NodeSource倉庫安裝Node.js 18 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # 驗證安裝 node -v # 需≥v18.0.0 npm -v # 需≥v8.0.0
安裝Lodestar
通過npm(Node.js包管理器)安裝Lodestar:
sudo npm install -g @chainsafe/lodestar
安裝完成后,可通過以下命令驗證:
lodestar --version
初始化共識層配置
Lodestar需與執行層客戶端協同工作,需生成配置文件并指定執行層客戶端路徑:
# 創建配置目錄 mkdir -p ~/.lodestar # 生成默認配置文件(主網) lodestar beacon-node --network=mainnet --data-dir=~/.lodestar --execution-endpoint=http://localhost:8551 --jwt-secret=~/.lodestar/jwt.hex > ~/.lodestar/config.yaml 2>&1 & # 生成JWT密鑰(用于執行層與共識層的安全通信) openssl rand -hex 32 > ~/.lodestar/jwt.hex
參數說明:
--network=mainnet:指定主網(測試網可替換為sepolia等);--data-dir:共識層數據存儲目錄;--execution-endpoint:執行層RPC地址(后續需配置Geth開啟RPC);--jwt-secret:JWT密鑰文件,用于執行層與共識層的身份驗證。
配置執行層(Geth)與共識層(Lodestar)協同
共識層客戶端(Lodestar)需從執行層客戶端(Geth)獲取區塊數據,因此需配置Geth開啟RPC服務并允許外部連接。
配置Geth RPC
編輯Geth的啟動參數(可通過命令行直接啟動,或創建服務文件長期運行),以下以命令行啟動為例:
geth \ --datadir ~/.ethereum \ --http \ --http.addr "0.0.0.0" \ --http.port 8545 \ --http.api "eth,net,web3,personal" \ --ws \ --ws.addr "0.0.0.0" \ --ws.port 8546 \ --ws.api "eth,net,web3" \ --authrpc.addr "0.0.0.0" \ --authrpc.port 8551 \ --authrpc.jwtsecret ~/.lodestar/jwt.hex \ --syncmode snap \ --gcmode full \ --metrics \ --metrics.addr "0.0.0.0" \ --metrics.port 6060
參數說明:
--http:開啟HTTP RPC服務(用于JSON-RPC交互);--http.addr "0.0.0.0":監聽所有網絡接口(安全場景建議限制為內網IP);--http.api:開放的API接口
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。



