引言
由以太坊2.0客戶端構(gòu)建團(tuán)隊(duì)之一的Prysmatic Labs發(fā)布的以太坊2.0的第一個主網(wǎng)配置的測試網(wǎng)Topaz終于在4.15正式啟動了兔毒。該測試網(wǎng)針對的是以太坊2.0第0階段的測試,即實(shí)現(xiàn)信標(biāo)鏈(beacon chain)和質(zhì)押(staking)。
早在去年1月宴合,以太坊在reddit上就進(jìn)行過一次AMA[1](Ask Me Anything)般又,對以太坊2.0的進(jìn)展做了詳細(xì)的說明碰酝。當(dāng)時預(yù)計第0階段的正式啟動預(yù)計會在2019年11月或2020年1月。然而現(xiàn)在已經(jīng)是2020年5月份了澎迎,目前仍處在第0階段的測試階段,正式啟動時間依然沒有確定选调〖泄可見以太坊和其他項(xiàng)目類似,對于進(jìn)展的預(yù)計過于樂觀仁堪,預(yù)計上線時間什么的也就只能聽過算數(shù)哮洽,圖一樂而已。
本人在去年10月的時候就已經(jīng)參與過Prysmatic Labs的測試網(wǎng)的Staking了弦聂,并且在官方discord中提交過幾個問題袁铐。當(dāng)時的版本BUG非常多揭蜒。然而時隔半年多,看到報道說他們的測試網(wǎng)已經(jīng)有超過2.5萬驗(yàn)證者參與了剔桨,這個數(shù)字的確超過了我的預(yù)想屉更。沒想到測試階段的Staking就有這樣的熱度,看來社區(qū)對于以太坊2.0的關(guān)注程度相當(dāng)之高洒缀。于是我便帶著好奇參與這一次的測試網(wǎng)了瑰谜。
開啟Staking的過程踩了一些坑,也會在這里記錄下來給大家作參考树绩。
話不多說萨脑,進(jìn)入正題。
名詞解釋
先解釋幾個的專有名詞饺饭。
- PoS: 即Proof of Stake渤早,中文叫“權(quán)益證明”。一個乍聽上去一臉懵逼的詞瘫俊,其實(shí)很簡單鹊杖,泛指通過鎖定代幣獲得新代幣的挖礦方式。與之對應(yīng)的是PoW-Proof of Work扛芽,工作量證明骂蓖,即通過計算來獲取新代幣的挖礦方式,比如比特幣川尖。
- Staking:質(zhì)押登下。指的是Pos中參與區(qū)塊驗(yàn)證并獲得新代幣的過程。
- beacon chain: 信標(biāo)鏈叮喳。信標(biāo)鏈?zhǔn)?Eth2 的核心被芳,它管理著驗(yàn)證者和分片的協(xié)調(diào)。信標(biāo)鏈?zhǔn)鞘聦?shí)的源泉馍悟,Eth2 的所有其他方面都從這里啟動筐钟。
- validator: 驗(yàn)證者。抵押ETH后赋朦,負(fù)責(zé)對區(qū)塊進(jìn)行提議(propose)或證明(attest)篓冲,并獲得收益。
準(zhǔn)備工作
1. Metamask
Metamask是一個基于瀏覽器插件的ETH錢包宠哄。
官網(wǎng):https://metamask.io/
教程:http://bjiebtc.com/qianbao-metamask-shiyongjc/
按照教程操作壹将,到記完助記詞并進(jìn)入主界面即可。然后點(diǎn)擊上方的網(wǎng)絡(luò)切換按鈕毛嫉,默認(rèn)的為主網(wǎng)絡(luò)诽俯,這里需要切換到Goerli測試網(wǎng)絡(luò),如下圖:
2. 主機(jī)
個人電腦承粤、本地服務(wù)器暴区、云服務(wù)器都可運(yùn)行闯团。官方的最低配置要求如下:
- 操作系統(tǒng):64位Linux,Mac OS X仙粱,Windows
- 處理器:Intel Core i5–760或AMD FX-8100或更高
- 內(nèi)存:4GB RAM
- 儲存空間:20GB可用空間SSD
- 互聯(lián)網(wǎng):寬帶連接
一定要滿足該最低要求房交!
如果使用1GB內(nèi)存和2GB交換的主機(jī)(去年10月測試可行)運(yùn)行信標(biāo)鏈客戶端,一定時間后將會報錯退出伐割。別問我是怎么知道的候味!
由于運(yùn)行時必須保持24/7在線,因此還是推薦租云服務(wù)器來進(jìn)行Staking隔心。配置起碼要2核4G白群。
參與Staking!
參考官方文檔:https://prylabs.net/participate
1. 下載代碼
新建任意目錄硬霍,進(jìn)入后執(zhí)行以下代碼:
git clone https://github.com/prysmaticlabs/prysm && cd ./prysm
等待下載完成后即可帜慢。
2. 獲取測試所需的ETH - G?ETH
G?ETH即Goerli測試網(wǎng)所用的ETH。記住測試網(wǎng)的ETH沒有任何價值唯卖,僅作為測試用粱玲。
在官方文檔中點(diǎn)擊第2個步驟,再點(diǎn)擊METAMASK圖標(biāo)連接到錢包:
之后會出現(xiàn)metamask彈窗耐床,點(diǎn)擊授權(quán)。接下來會提示你至少需要32個G?ETH才能參與楔脯。點(diǎn)擊Need G?ETH撩轰,并在彈窗中點(diǎn)擊Yes please。
3. 生成驗(yàn)證者的密鑰
執(zhí)行以下代碼創(chuàng)建賬戶
./prysm.sh validator accounts create
創(chuàng)建的過程中看到INFO accounts: Enter a password:
之后輸入密碼并記住所輸密碼昧廷,之后按下回車即可成功創(chuàng)建賬戶堪嫂。
完成后會看到以下字符。復(fù)制0x....的部分木柬。
========================Raw Transaction Data=======================
0x.......
...........
...........
===================================================================
4. 發(fā)送驗(yàn)證者存款
上述拷貝下來的內(nèi)容中包含驗(yàn)證者賬戶的信息皆串。將內(nèi)容粘貼到官方文檔中的步驟3的輸入框內(nèi),然后點(diǎn)擊步驟5的make deposit按鈕眉枕,之后在metamask的彈窗中確認(rèn)該筆交易即可恶复。
5. 運(yùn)行信標(biāo)鏈(beacon chain)和驗(yàn)證者(validator)客戶端
官方文檔的這一步驟在發(fā)送驗(yàn)證者存款之前,不過放在最后也沒有關(guān)系速挑。
一旦開始驗(yàn)證之后谤牡,信標(biāo)鏈客戶端和驗(yàn)證者客戶端需要24/7全天候在線才能進(jìn)行Staking,否則將會受到懲罰姥宝。因此需要保證兩個進(jìn)程在關(guān)閉終端后繼續(xù)保持運(yùn)行翅萤。
關(guān)閉終端后保持進(jìn)程運(yùn)行的常用方法為nohup,或者screen腊满。由于驗(yàn)證者客戶端需要輸入賬戶創(chuàng)建時設(shè)置的密碼才能繼續(xù)套么,而nohup運(yùn)行時會因無法輸入密碼而退出驗(yàn)證者客戶端培己,因此這里使用screen運(yùn)行。
通過screen開啟客戶端
- 創(chuàng)建并進(jìn)入一個新的screen session:
screen -S beacon_chain
- 運(yùn)行信標(biāo)鏈客戶端
./prysm.sh beacon-chain
- 等待開始運(yùn)行后胚泌,按下快捷鍵CTRL+A+D脫離終端省咨。此時會顯示
[detached from xxxx.eth2test1beacon]
并退回到原來的回話,信標(biāo)鏈節(jié)點(diǎn)將會繼續(xù)保持運(yùn)行诸迟。如果要回到信標(biāo)鏈session茸炒,使用-r參數(shù)即可:
screen -r beacon_chain
以同樣的方式開啟驗(yàn)證者客戶端,創(chuàng)建一個新的screen session并將步驟2改成./prysm.sh validator
并輸入密碼即可阵苇。
如果忘記創(chuàng)建的screen session名稱壁公,運(yùn)行screen -ls
可查看所有創(chuàng)建的screen session。
注意事項(xiàng)
-
開始Staking需要經(jīng)歷三個階段:
1.初始同步(initial sync):和其他區(qū)塊鏈一樣绅项,開始階段需要同步所有的歷史區(qū)塊紊册。這一階段信標(biāo)鏈進(jìn)程將會占用大量內(nèi)存、CPU和帶寬資源快耿。以xx云的2H4G云主機(jī)為例囊陡,客戶端開始時同步速度為大約20區(qū)塊/秒,但運(yùn)行一段時間后會緩慢降至0.4區(qū)塊/秒掀亥。此時重啟客戶端會恢復(fù)到初始速度撞反,同步完成大概需要重啟3-4次历帚,整體時間根據(jù)主機(jī)性能和網(wǎng)速需要2小時-12小時茄螃。這一階段如果開啟驗(yàn)證者客戶端,將會一直處于等待信標(biāo)鏈同步完成的狀態(tài)顽爹,因此可暫時不管驗(yàn)證者客戶端撮竿,等到同步完成后再開啟吮便,節(jié)省資源。- 等待成為驗(yàn)證者:信標(biāo)鏈同步完成后幢踏,開啟驗(yàn)證者客戶端髓需,此時會進(jìn)入等待隊(duì)列。處于等待隊(duì)列的驗(yàn)證者沒有收益房蝉。此過程大約需要24小時左右僚匆。
- 進(jìn)行驗(yàn)證并獲取收益:等待完成后即成為驗(yàn)證者,被分配到特定分片進(jìn)行提案(propose)或證明(attest)搭幻。持續(xù)完成提案或證明即可獲得收益白热。
可設(shè)置swap交換區(qū)增加虛擬內(nèi)存,防止內(nèi)存不足導(dǎo)致信標(biāo)鏈客戶端出錯粗卜,特別是在初始同步階段屋确。增加swap的方法詳見:https://blog.csdn.net/blog_liuliang/article/details/80435134