以太坊2.0POS挖礦教程:手把手教你在Topaz測試網進行Staking

買賣虛擬貨幣

由以太坊2.0客戶端構建團隊之一的Prysmatic Labs釋出的以太坊2.0的第一個主網配置的測試網Topaz終於在4.15正式啟動了。該測試網針對的是以太坊2.0第0階段的測試,即實現信標鏈(beacon chain)和質押(staking)。

早在去年1月,以太坊在Reddit上就進行過一次AMA[1](Ask Me Anything),對以太坊2.0的進展做了詳細的說明。當時預計第0階段的正式啟動預計會在2019年11月或2020年1月。然而現在已經是2020年5月份了,目前仍處在第0階段的測試階段,正式啟動時間依然沒有確定。可見以太坊和其他專案類似,對於進展的預計過於樂觀,預計上線時間什麼的也就只能聽過算數,圖一樂而已。

本人在去年10月的時候就已經參與過Prysmatic Labs的測試網的Staking了,並且在官方discord中提交過幾個問題。當時的版本BUG非常多。然而時隔半年多,看到報道說他們的測試網已經有超過2.5萬驗證者參與了,這個數字的確超過了我的預想。沒想到測試階段的Staking就有這樣的熱度,看來社羣對於以太坊2.0的關注程度相當之高。於是我便帶著好奇參與這一次的測試網了。

開啟Staking的過程踩了一些坑,也會在這裡記錄下來給大家作參考。

話不多說,進入正題。先解釋幾個的專有名詞。

PoS: 即Proof of Stake,中文叫“權益證明”。一個乍聽上去一臉懵逼的詞,其實很簡單,泛指透過鎖定代幣獲得新代幣的挖礦方式。與之對應的是PoW-Proof of Work,工作量證明,即透過計算來獲取新代幣的挖礦方式,比如比特幣。

Staking:質押。指的是Pos中參與區塊驗證並獲得新代幣的過程。

beacon chain: 信標鏈。信標鏈是 Eth2 的核心,它管理著驗證者和分片的協調。信標鏈是事實的源泉,Eth2 的所有其他方面都從這裡啟動。

validator: 驗證者。抵押ETH後,負責對區塊進行提議(propose)或證明(attest),並獲得收益。

準備工作

1. Metamask

Metamask是一個基於瀏覽器外掛的ETH錢包。

官網:https://metamask.io/

教程:http://bjiebtc.com/qianbao-metamask-shiyongjc/

按照教程操作,到記完助記詞並進入主介面即可。然後點選上方的網路切換按鈕,預設的為主網路,這裡需要切換到Goerli測試網路,如下圖:

切換到Goerli測試網路

2. 主機

個人電腦、本地伺服器、雲伺服器都可執行。官方的最低配置要求如下:

作業系統:64位Linux,Mac OS X,Windows

處理器:Intel Core i5–760或AMD FX-8100或更高

記憶體:4GB RAM

儲存空間:20GB可用空間SSD

網際網路:寬頻連線

一定要滿足該最低要求!

如果使用1GB記憶體和2GB交換的主機(去年10月測試可行)執行信標鏈客戶端,一定時間後將會報錯退出。別問我是怎麼知道的!

由於執行時必須保持24/7線上,因此還是推薦租雲伺服器來進行Staking。配置起碼要2核4G。

參與Staking!

參考官方文件:https://prylabs.net/participate

1. 下載程式碼

新建任意目錄,進入後執行以下程式碼:

git clone https://github.com/prysmaticlabs/prysm && cd ./prysm

等待下載完成後即可。

2. 獲取測試所需的ETH - GöETH

GöETH即Goerli測試網所用的ETH。記住測試網的ETH沒有任何價值,僅作為測試用。 在官方文件中點選第2個步驟,再點選METAMASK圖示連線到錢包:

連線metamask

之後會出現metamask彈窗,點選授權。接下來會提示你至少需要32個GöETH才能參與。點選Need GöETH,並在彈窗中點選Yes please。

獲取32個GöETH

3. 生成驗證者的金鑰

執行以下程式碼建立賬戶

./prysm.sh validator accounts create

建立的過程中看到INFO accounts: Enter a password:之後輸入密碼並記住所輸密碼,之後按下回車即可成功建立賬戶。 完成後會看到以下字元。複製0x....的部分。

========================Raw Transaction Data=======================

0x.......

...........

...........

===================================================================

4. 傳送驗證者存款

上述複製下來的內容中包含驗證者賬戶的資訊。將內容貼上到官方文件中的步驟3的輸入框內,然後點選步驟5的make deposit按鈕,之後在metamask的彈窗中確認該筆交易即可。

將上一步驟複製的內容貼上到此處

傳送存款交易

5. 執行信標鏈(beacon chain)和驗證者(validator)客戶端

官方文件的這一步驟在傳送驗證者存款之前,不過放在最後也沒有關係。

一旦開始驗證之後,信標鏈客戶端和驗證者客戶端需要24/7全天候線上才能進行Staking,否則將會受到懲罰。因此需要保證兩個程序在關閉終端後繼續保持執行。

關閉終端後保持程序執行的常用方法為nohup,或者screen。由於驗證者客戶端需要輸入賬戶建立時設定的密碼才能繼續,而nohup執行時會因無法輸入密碼而退出驗證者客戶端,因此這裡使用screen執行。

透過screen開啟客戶端

建立並進入一個新的screen session:

screen -S beacon_chain

執行信標鏈客戶端

./prysm.sh beacon-chain

等待開始執行後,按下快捷鍵CTRL+A+D脫離終端。此時會顯示[detached from xxxx.eth2test1beacon]並退回到原來的回話,信標鏈節點將會繼續保持執行。如果要回到信標鏈session,使用-r引數即可:

screen -r beacon_chain

以同樣的方式開啟驗證者客戶端,建立一個新的screen session並將步驟2改成./prysm.sh validator並輸入密碼即可。

如果忘記建立的screen session名稱,執行screen -ls可檢視所有建立的screen session。

注意事項

開始Staking需要經歷三個階段: 1.初始同步(initial sync):和其他區塊鏈一樣,開始階段需要同步所有的歷史區塊。這一階段信標鏈程序將會佔用大量記憶體、CPU和頻寬資源。以xx雲的2H4G雲主機為例,客戶端開始時同步速度為大約20區塊/秒,但執行一段時間後會緩慢降至0.4區塊/秒。

此時重啟客戶端會恢復到初始速度,同步完成大概需要重啟3-4次,整體時間根據主機效能和網速需要2小時-12小時。這一階段如果開啟驗證者客戶端,將會一直處於等待信標鏈同步完成的狀態,因此可暫時不管驗證者客戶端,等到同步完成後再開啟,節省資源。

等待成為驗證者:信標鏈同步完成後,開啟驗證者客戶端,此時會進入等待佇列。處於等待佇列的驗證者沒有收益。此過程大約需要24小時左右。

進行驗證並獲取收益:等待完成後即成為驗證者,被分配到特定分片進行提案(propose)或證明(attest)。持續完成提案或證明即可獲得收益。

可設定swap交換區增加虛擬記憶體,防止記憶體不足導致信標鏈客戶端出錯,特別是在初始同步階段。增加swap的方法詳見:https://blog.csdn.net/blog_liuliang/article/details/80435134

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;