以太坊 (Ethereum)作為 2014 年才開始區塊鏈的專案,近年發展迅速,眾多在以太坊上的活動讓目前的每秒交易速度 (~13 TPS) 已不符所需。經過多年的實驗與討論,以太坊 (Ethereum) 的下一代 Ethereum 2.0 路線圖也已經越來越清晰。
目前以太坊 (Ethereum) 2.0 即將進展至 Phase 0 階段。在此階段以太坊 1.0 和 2.0 的網路將並存。直到發展到 Phase 1.5 階段,1.0 網路將會融合進 2.0 網路。隨著時間接近,2.0 測試網路與多種驗證節點的測試版也陸續釋出,網路上已有許多經驗可參考,正是嘗試的好時機。
這邊略過各種基礎介紹,直接從如何運行以太坊 (Ethereum) 2.0 的驗證節點開始。
如果覺得這篇文章有用,歡迎傳送小費到 0xfDa995Eb398750319a2D5E8A4766c02e54db24b8
快速入門 (硬體需求)
- 驗證節點需要 24 小時運作(可短時間離線)
- Passmark CPU Mark (x86, ARM) 分數至少 4000 分
- 至少 512G 的 SSD
- 運作期間會長期佔用 300k bps 左右的網路頻寬
在參考相關文章,並考慮整體成本後,我選擇樹莓派 4 代 (Raspberry Pi 4) 4GB 版當作主機,搭配 512G 的 USB 介面外接 SSD 來跑驗證節點 (總能耗 = 機器本身最高耗能 5V * 3A = 15W,再加上家用路由器要一直開著著的能耗。樹莓派 4 一般能耗應該在 5~9W 之間)。
神奇的是,需要的硬體竟然在 PCHome 就可以一次買齊 😎
(我已有 16G+ SD 卡,SD 卡讀卡機,HDMI 外接螢幕,USB 外接鍵盤),林林總總必要成本大概在 7000 元內。
參考 ETH 2 stacking 的即時回報率 https://beaconcha.in/calculator ,這個配置大概只要跑 3 個月,硬體跟電費的部分就可以回本了。
快速入門 (軟體需求)
驗證節點需要
- 參考 Ethereum 1.0 的區塊鏈節點
- 同步 Ethereum 2.0 Beacon 鏈
- 運行 Ethereum 2.0 的 Validator(驗證者節點)
因此軟體中需要包含
硬體準備好後,若想要快速開始體驗,可以參考 EthereumOnARM 專案提供的 ROM 版本 或是參考他的腳本來設定(請留意使用他人包好的 ROM 的風險)。
快速入門 (軟體設定)
把 SD 卡燒好,路由器上開 13000/30303 port forwarding,接上網路,就自動裝好自動跑。
1. 燒 ROM
下載好 EthereumOnARM ROM 之後,在電腦上使用 balena Etcher 等燒錄軟體,將 ROM 燒錄到 SD 卡中。
2. 設定機器
將網路線接到樹莓派 4 上,插入燒好 ROM 的 SD 卡,並將外接 SSD 插到藍色的 USB 接口上。 通上電源後,即會自動開機並執行所有的設定(系統調整,格式化 SSD,安裝所需程式)。
出現登入提示後以 ethereum/ethereum 登入。
登入後可以使用命令 hostname -I
查看機器目前分配到的 IP。
$ hostname -I
192.168.1.123
3. 查看運作狀態
這時就可以透過其他設備查看樹莓派 4 的狀態。
開啟瀏覽器,輸入 http://[ip]:3000 ,使用 admin/ethereum 登入,可以看到以下的監視圖表:
設備狀態
Ethereum 1.0
Ethereum 2.0 的監視圖表在 Ethereum 1.0 區塊鏈同步完成前,都還不會正常顯示。
4. 設定網路
打開家用路由器的設定頁面,將樹莓派 4 分配到以上查到的固定內網 IP (如上例就是 192.168.1.123
)。
在 WAN(外部網路)端設定頁面的Port Forwarding
,或虛擬伺服器
設定中,將以下 port 綁定到樹莓派 4 的內網 IP:
- 13000 (TCP)
- 12000 (UDP)
- 30303 (TCP, UDP)
這樣從外面傳入這些 port 的封包,就會自動轉傳到樹莓派 4。
設定驗證者 (Validator) 資訊
在 Ethereum 1.0 區塊鏈同步完後,可以透過遠端連線的方式來連線到樹莓派 4
並在瀏覽器上開啟 https://prylabs.net/participate 參照說明申請(需用以太坊錢包)。
申請後如果 validator process 也順利啟動,可以在 Ethereum 2.0 監視圖表中看到 Validator process started
訊息。
Validator Main Info
的Status
(狀態) 欄位也會變成DEPOSITED
(已存入) 狀態。
也可以根據你登記的 Validator pubkey,前往 https://beaconcha.in 查看 Validator 狀態
例如 https://beaconcha.in/validator/30078 或 https://beacon.etherscan.io/validator/30078
經過實際安裝的過程,我們可以看到,以太坊 2.0 的相關工具生態已經初步搭建起來了。
運作之後
恭喜你已經上車了!🤑
同時,你也應該要知道,你放了 32ETH (現價 7000 + 美金)在以太坊 2.0 的網路上,一兩年的時間內無法取回到以太坊 1.0 網路上使用。
......😲😱😡🤬!!!
還好,現在跑的還只是測試網路,放的不是真的 ETH 😜。
這時候,是不是更應該仔細查看一下當前 Ethereum 2.0 的說明書 (Spec) 是不是合理?
在驗證截短運作的過程中,一旦遇到網路、機器當機等各種斷線情況時,Ethereum 2.0 網路會怎麼處理?
文末加註警語:
可以用文中建議的配置,用較低成本在測試網路體驗看看。但若為了投資而做,請詳閱說明書!
其他軟體設定選擇
可以參考已有一些手動安裝教學如
- https://medium.com/@SomerEsat/guide-to-staking-on-ethereum-2-0-ubuntu-prysm-witti-2b972e697918
- https://hive.blog/ethereum/@tarekadam/altona-test-net-validator-using-raspberry-pi4b-8-gb
教你從 Ubuntu 20.04 開始從頭裝。
其他的硬體選擇
可以參考 https://www.reddit.com/r/ethstaker/comments/ggmbvd/a_comprehensive_look_at_hardware_for_staking/
參考資料
- 可以前往 https://www.reddit.com/r/ethstaker/ 查看 Eth 2.0 Stacking 相關討論
- EthereumOnARM 的 Github Repo https://github.com/diglos/pi-gen/tree/ethraspbian2.0/
- 我第一次安裝的 ROM 版本 https://www.reddit.com/r/ethereum/comments/gf3nhg/ethereum_on_arm_raspberry_pi_4_images_release/
- 用 Windows 10 或 Mac OS 架 https://kb.beaconcha.in/tutorial-eth2-multiclient
- Prysm 的 Issue Tracker https://github.com/prysmaticlabs/prysm/issues