寫(xiě)在前面
本文介紹了用樹(shù)莓派4B在普通家用網(wǎng)絡(luò)環(huán)境下部署運(yùn)行以太坊PoS質(zhì)押驗(yàn)證節(jié)點(diǎn)Validator的一些經(jīng)驗(yàn)和注意事項(xiàng)。
一點(diǎn)背景
2022年北京時(shí)間9月15日14時(shí)磁浇,以太坊合并完成登颓,主網(wǎng)與PoS共識(shí)層信標(biāo)鏈(Beacon鏈)結(jié)合窥摄、將此前PoW工作量證明機(jī)制轉(zhuǎn)變?yōu)镻oS權(quán)益證明機(jī)制俺叭,宣布以太坊正式進(jìn)入2.0時(shí)代。此舉意味著畦娄,以太坊將告別大規(guī)模礦機(jī)挖礦時(shí)代谐算,持有者通過(guò)質(zhì)押以太坊代幣(ETH)即可挖礦熟尉,質(zhì)押門(mén)檻為32個(gè)ETH。
對(duì)以太坊支持者或愛(ài)好者來(lái)說(shuō)洲脂,最好的支持方式是單獨(dú)搭建跑一個(gè)自己的驗(yàn)證節(jié)點(diǎn)斤儿,這對(duì)于該鏈的去中心化和抗審查是非常有利的剧包,也是官方最推崇的一種方式,這種一般稱為“Solo Staking”往果。但隨之而來(lái)的是疆液,需要搭建者有一定的Linux命令行技術(shù)基礎(chǔ)和持有一定量的ETH幣。實(shí)際上想要運(yùn)行一個(gè)Validator有很多種方式陕贮,你可以部署運(yùn)行在云服務(wù)器上堕油,也可以自己自行購(gòu)買(mǎi)硬件放在家里運(yùn)行(本文介紹的方式)。
其它的更多的質(zhì)押選擇可以去官網(wǎng)看肮之,方式和選擇有很多種掉缺,下面也會(huì)鏈接一些資料,此處不再贅述戈擒。
硬件眶明、系統(tǒng)、客戶端與先決條件
這里說(shuō)下筆者用的硬件配置和客戶端選擇峦甩。
- 硬件1:樹(shù)莓派4B赘来,配置為4core, 8GB
- 硬件2:三星(SAMSUNG)2TB SSD固態(tài)硬盤(pán) SATA3.0接口 870 EVO(MZ-77E2T0B)
- 硬件3:USB3.0轉(zhuǎn)SATA轉(zhuǎn)換器现喳,用于連接SSD與樹(shù)莓派凯傲;以及一個(gè)樹(shù)莓派小風(fēng)扇
- 操作系統(tǒng):Ubuntu Server 22.04 LTS
- 以太坊客戶端組合:Geth + Nimbus
- 用于PoS質(zhì)押的32個(gè)ETH
一些說(shuō)明
- 關(guān)于硬件:這套硬件配置下來(lái)約3100元(樹(shù)莓派1200 + SSD硬件1900,現(xiàn)在看SSD看已降價(jià)至1600)嗦篱,選擇樹(shù)莓派是為了盡量控制硬件成本(且其非常小巧)冰单,其缺點(diǎn)是4核8G的硬件配置對(duì)運(yùn)行以太坊全節(jié)點(diǎn)來(lái)說(shuō)的確是性能受限的,且沒(méi)有為未來(lái)的以太坊升級(jí)留有一定的性能空間灸促,而且還需要對(duì)其做一些調(diào)優(yōu)诫欠。如有可能的話,根據(jù)大多數(shù)人的實(shí)踐經(jīng)驗(yàn)浴栽,還是強(qiáng)烈推薦購(gòu)買(mǎi)一臺(tái)Intel NUC小型臺(tái)式機(jī)荒叼,建議配置是8核16G內(nèi)存。另外典鸡,以太坊節(jié)點(diǎn)對(duì)硬盤(pán)讀寫(xiě)速度要求非常高被廓,一個(gè)質(zhì)量達(dá)標(biāo)的SSD硬盤(pán)非常非常重要(需要測(cè)速驗(yàn)證)。
- 關(guān)于成本:用樹(shù)莓派的好處是硬件成本低萝玷,且功耗(約10W)非常低嫁乘,這樣放在家里跑的話其電費(fèi)和網(wǎng)絡(luò)費(fèi)用的成本基本可以忽略不計(jì)。若為了節(jié)省成本買(mǎi)一臺(tái)二手Intel NUC機(jī)器也是可以的球碉。在這里要說(shuō)下蜓斧,把節(jié)點(diǎn)放在云服務(wù)器上的優(yōu)缺點(diǎn)都非常明顯,優(yōu)點(diǎn)是硬件和網(wǎng)絡(luò)環(huán)境有保證更加穩(wěn)定历谍,缺點(diǎn)是它的cpu+mem硬件價(jià)格逾冬、帶寬&流量費(fèi)用、和SSD硬盤(pán)大容量費(fèi)用浦旱,讓它的總價(jià)格高到無(wú)法接受直奋,肯定是虧本的狼荞。經(jīng)常買(mǎi)阿里云服務(wù)器的應(yīng)該都有經(jīng)驗(yàn)。但看國(guó)外也有網(wǎng)友跑在云上的帮碰,但貌似歐洲那邊的云服務(wù)明顯比國(guó)內(nèi)便宜非常之多相味。
- 關(guān)于收益:當(dāng)前POS質(zhì)押的平均年化收益約4%(幣本位),也就是一年收益約1.2ETH殉挽。如果你的運(yùn)氣好能多proposal幾個(gè)區(qū)塊Block丰涉,并且配置上MEV的話,你的收益能達(dá)約6%左右斯碌。
- 關(guān)于質(zhì)押風(fēng)險(xiǎn):如果節(jié)點(diǎn)運(yùn)行不穩(wěn)定導(dǎo)致掉線或性能不夠?qū)е骂l繁Miss Attestation時(shí)一死,你會(huì)被懲罰,它是實(shí)時(shí)扣減的傻唾。比如說(shuō)你掉線一天投慈,那會(huì)被扣掉一天的收益,相當(dāng)于兩天沒(méi)有正常工作的收益冠骄。這個(gè)并不那么可怕伪煤,一般經(jīng)過(guò)跑測(cè)試網(wǎng)驗(yàn)證的話不會(huì)有啥問(wèn)題,懲罰數(shù)量也是完全可接受的凛辣。
一點(diǎn)經(jīng)驗(yàn)
以下經(jīng)驗(yàn)主要基于用樹(shù)莓派來(lái)搭建節(jié)點(diǎn)抱既,但很多經(jīng)驗(yàn)是通用的,并不局限于某個(gè)特定硬件扁誓。
- 用SSD硬盤(pán)來(lái)啟動(dòng)系統(tǒng)防泵,也就是說(shuō)系統(tǒng)盤(pán)是運(yùn)行在SSD上的而不是普通硬盤(pán)或MicroSD卡,以提升系統(tǒng)運(yùn)行速度蝗敢。
- 給系統(tǒng)加個(gè)Swap空間捷泞,以避免內(nèi)存受限(但使用swap會(huì)降低一定性能),例如8GB或16GB寿谴。
- 為你的網(wǎng)絡(luò)申請(qǐng)公網(wǎng)IP锁右,目的是讓其它Peer節(jié)點(diǎn)能連接你,從而讓你能連接更多的節(jié)點(diǎn)拭卿。這個(gè)IP不需要是靜態(tài)的骡湖,動(dòng)態(tài)的也沒(méi)問(wèn)題,但一定要求是公網(wǎng)的峻厚。通常給你的網(wǎng)絡(luò)服務(wù)提供商ISP打個(gè)電話就可以申請(qǐng)搞定了响蕴。
- 為你的家庭網(wǎng)絡(luò)設(shè)置端口轉(zhuǎn)發(fā),讓你的Geth和Nimbus客戶端能連接更多的Peer節(jié)點(diǎn)惠桃,從而提升運(yùn)行性能和可靠性浦夷。如果你不是公網(wǎng)IP辖试,那端口轉(zhuǎn)發(fā)也就沒(méi)必要設(shè)置了。
- 由于樹(shù)莓派的硬件性能是受限的劈狐,根據(jù)筆者及reddit網(wǎng)友的經(jīng)驗(yàn)罐孝,必須使用Geth+Nimbus的客戶端組合,不然你的客戶端運(yùn)行速度跟不上以太鏈的更新速度肥缔,從而根本沒(méi)法跑Validator莲兢。因?yàn)镹imbus客戶端是為普通消費(fèi)硬件而設(shè)計(jì)的,適合運(yùn)行在性能受限的硬件上续膳。當(dāng)然改艇,若你的硬件性能沒(méi)問(wèn)題,客戶端組合的選擇是不受限的坟岔。
- 上以太坊主網(wǎng)之前谒兄,強(qiáng)烈建議先用goerli測(cè)試網(wǎng)跑一遍來(lái)熟悉整個(gè)部署和質(zhì)押流程,并且測(cè)試你的硬件性能和網(wǎng)絡(luò)配置(網(wǎng)速和端口轉(zhuǎn)發(fā)等)都是完全沒(méi)問(wèn)題的社付,這個(gè)非常重要承疲。
- 可選項(xiàng):為你的樹(shù)莓派CPU調(diào)高運(yùn)行頻率,可以稍微調(diào)一點(diǎn)鸥咖,不作強(qiáng)求燕鸽,缺點(diǎn)是可能導(dǎo)致CPU運(yùn)行時(shí)故障或者溫度過(guò)高。
- 測(cè)試你的SSD讀寫(xiě)速度扛或,防止硬盤(pán)性能不達(dá)標(biāo)绵咱,或者數(shù)據(jù)連接線有問(wèn)題。具體可直接參考示例:https://docs.rocketpool.net/guides/node/local/prepare-pi.html#testing-the-ssd-s-performance
- 總結(jié)起來(lái)就是熙兔,運(yùn)行以太坊全節(jié)點(diǎn)Validator對(duì)硬件性能有較高的要求,主要是cpu艾恼、內(nèi)存和SSD硬盤(pán)住涉,且要求你的網(wǎng)絡(luò)配置能連接較多的對(duì)等節(jié)點(diǎn)。如果有其中任一環(huán)節(jié)出現(xiàn)問(wèn)題钠绍,都可能導(dǎo)致你的節(jié)點(diǎn)無(wú)法同步完區(qū)塊數(shù)據(jù)舆声,或者無(wú)法跟上鏈頭的更新速度,或者Validator頻繁Miss Attestation(會(huì)受罰)柳爽,或者Inclusion Distance較大(最優(yōu)是0)媳握。
核心參考資料
- Ethereum:https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/
- Ethereum on ARM documentation:https://ethereum-on-arm-documentation.readthedocs.io/en/latest/index.html
- Nimbus:https://nimbus.guide/quick-start.html
- Prysm:https://docs.prylabs.network/docs/install/install-with-script
- Reddit:https://www.reddit.com/r/ethstaker/
- Discord:https://discord.com/channels/694822223575384095/925301915644993626
- Mainnet Staking Launchpad:https://launchpad.ethereum.org/en/overview
- Testnet Staking Launchpad:https://goerli.launchpad.ethstaker.cc/en/select-client
- Beaconchain:https://beaconcha.in/
- https://www.makeuseof.com/how-to-boot-raspberry-pi-ssd-permanent-storage/
- https://docs.rocketpool.net/guides/node/local/prepare-pi.html
- https://github.com/eth-educators/ethstaker-guides/blob/main/MEV-relay-list.md
- https://www.reddit.com/r/ethstaker/comments/xgxmqv/after_merge_is_anyone_staking_succesfully_with_a/
- https://eth-docker.net/
- https://luckystaker.com/home
- https://www.reddit.com/r/ethstaker/comments/xto0dm/understanding_missed_attestations_understanding/
寫(xiě)在后面
就這么個(gè)低配廉價(jià)小玩意卻能比較高效地運(yùn)行以太坊質(zhì)押驗(yàn)證節(jié)點(diǎn)(俗稱“挖礦”),還是讓人感到驚奇驚訝和驚喜磷脯!
歡迎感興趣的各位交流蛾找。
索引關(guān)鍵字
以太坊,區(qū)塊鏈赵誓,質(zhì)押打毛,驗(yàn)證柿赊,節(jié)點(diǎn),挖礦幻枉,樹(shù)莓派碰声,ETH,Ethereum熬甫,PoS胰挑,Solo Staking,Validator椿肩,Node洽腺,Geth,Nimbus覆旱,Raspberry PI