在 Mac 跑起以太坊執行層與共識層:完整圖解指南(含 Sepolia 實戰)

·

“跑節點”與“跑客戶端”是同一回事;本文手把手帶你把 Nethermind(執行層)與 Prysm(共識層)跑在同一台 Mac 上,並同步到測試網 Sepolia。

一分鐘速讀:本文核心要點

什麼是「節點」?為何重要?

以太坊是一個去中心化網路,由數千個「節點」組成。每個節點其實就是一個後台軟體 —— 客戶端。這些客戶端具備四大能力:

  1. 實作 Ethereum 協議:EVM 執行、交易處理、智能合約運算
  2. 下載並驗證完整區塊歷史,維持本地狀態
  3. 即時驗證新区块與交易,防止雙花、錯帳
  4. 提供資料共享,協助其他節點同步

跑節點不一定需要質押 ETH。想參與網路、加強隱私或降低對第三方 RPC 供應商的依賴者都能夠執行。

The Merge 後:執行層 vs 共識層

在 The Merge 之前,單一個客戶端就能同時完成「執行」與「共識」兩份工作。合併之後,以太坊架構一分為二:

兩層透過 Engine API(JSON-RPC)溝通,並以 JWT 共享密鑰 進行身份驗證。第三方節點供應商已經幫你做好整合,但自建節點仍需分別管理兩套軟體。

為什麼要自己跑節點?

👉 想了解未來運行擴容 Rollup 節點的無縫銜接技巧?點我深入閱讀

運行環境速查

FAQ:硬體需求疑難雜症

Q1:我只有 8 GB 記憶體跑得動嗎?
A:Sepolia 測試網可跑,但主網建議 16 GB 以上;GC 壓力較大時 Nethermind 會吃 6–7 GB。

Q2:能用蘋果晶片跑嗎?
A:Nethermind 與 Prysm 均已原生支援 arm64,macOS 直接 Homebrew 安裝即可。

Q3:需要 GPU 或特殊網卡嗎?
A:不需要。PoS 不再執行哈希挖礦,網卡只要穩定千兆即可。


實戰:四步跑起你的以太坊節點

Step 0:建立資料夾結構

在任意目錄執行:

mkdir -p ~/ethereum/{execution,consensus}

確保有 execution/consensus/ 兩個子目錄。

Step 1:安裝 Prysm(共識層 CL)

cd ~/ethereum/consensus
curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh -o prysm.sh
chmod +x prysm.sh

# 生成 JWT
./prysm.sh beacon-chain generate-auth-secret

JWT 檔案 jwt.hex 會出現在 consensus/ 中,之後 Nethermind 也會讀它。

Step 2:安裝 Nethermind(執行層 EL)

brew tap nethermindeth/nethermind
brew install nethermind

Step 3:先跑 EL – Nethermind

nethermind \
  --config sepolia \
  --JsonRpc.Enabled true \
  --JsonRpc.JwtSecretFile=../consensus/jwt.hex \
  --Merge.TerminalTotalDifficulty 17000000000000000

看到 Waiting for Forkchoice message from Consensus... 即代表執行層就緒,正等待共識層心跳。

若遇到 address already in use,先查端口佔用:

lsof -i :8545
kill -9 <PID>

Step 4:再跑 CL – Prysm Beacon Node

  1. 下載 Sepolia genesis state

    cd ~/ethereum/consensus
    curl -L https://github.com/eth-clients/merge-testnets/raw/main/sepolia/genesis.ssz -o genesis.ssz
  2. 啟動 Beacon Node

    ./prysm.sh beacon-chain \
      --sepolia \
      --execution-endpoint=http://localhost:8545 \
      --jwt-secret=jwt.hex \
      --genesis-state=genesis.ssz \
      --suggested-fee-recipient=0xYOUR_ADDRESS_HERE
若提示 gpg is not available,可加環境變數:
export PRYSM_ALLOW_UNVERIFIED_BINARIES=1

當兩端日誌都顯示 synced 狀態,節點即開始正常出塊與驗證。

FAQ 實戰索引

Q4:節點需要開防火牆端口嗎?
A:Prysm 預設 13000/tcp + 12000/udp,Nethermind 30303/tcp+udp,請允許出入站。

Q5:如何查看同步進度?
A:共識層可訪問 http://localhost:3500/eth/v1/node/syncing;執行層打 http://localhost:8545,呼叫 eth_syncing method。

Q6:能否同時跑多條測試網?
A:可以。但各網路資料庫需隔離,記得改端口、改 JWT、分開 chain data 路徑。

Q7:節點斷網後會自動恢復嗎?
A:會。雙層軟體皆有斷線重連機制,當網路恢復數秒內即可繼續同步。

進階優化建議

  1. 資料存放 SSD 而非外接硬碟:讀寫 IOPS 差距 20–100 倍
  2. 啟動檔案鎖避免雙開:在 .bashrc 設 nethermind 的 --datadir 與 prysm 的 --datadir 不同路徑
  3. 監控 Grafana:Prysm 內建 /metrics,使用 Prometheus + Grafana 可以快速發現延遲或對等節點遺失
  4. 自動重啟腳本:利用 launchctlsystemd 監控行程崩潰

👉 補充參考:零代碼可視化節點監控配置秘笈

結語

掌握本文「安裝 + 配對 + 同步」三步驟,你就能在本地擁有一台不倚賴第三方的以太坊節點。當社區繼續發展 L2、DeFi、NFT 協議時,你的自建基礎設施將是第一線防線,也為未來更高級的驗證者(Validator)之路鋪好路基。祝你跑節點愉快、區塊不迷路!