本文基于PrysmaticLabs的Prysm客戶端,詳細講解如何參與以太坊2.0主網質押。主要基于以下幾個技術:
Ubuntuv20.04(LTS)x64服務器
GoEthereum節點(Github)
PrysmaticLabsETH2.0客戶端—Prysm(代碼分支)
瀏覽器插件加密錢包MetaMask
提示:參與質押至少需要32ETH以及額外的gas費。在搞清楚之前切記不要向任意地址發送ETH。本教程介紹了如何安全地將你的ETH存入存款合約。請牢記不要將ETH發送給任何人。
致謝
本教程參考了網上的各種資料,感謝這些提供資料的貢獻者!
感謝EthStaker管理團隊和提供教程的社區成員、Eth2客戶端團隊、以及質押社區的幫助和校對。
特別感謝Eth2客戶端團隊和以太坊基金會的研究員。他們經過幾年的不懈努力,將我們帶到這難以置信的時刻——Eth2.0成功創世。
免責聲明
本文僅供參考,不構成專業建議。作為本教程的作者。我本人不保證文中信息的準確性,對于那些參考了本文進行操作而產生的任何損失概不負責。文末有更加完整的免責聲明,請閱讀之后再進行操作。
支持
如需技術支持,請聯系:
EthStaker社區是一個以太坊2.0Staking社區,資源豐富且十分友好。
Reddit:
https://www.reddit.com/r/ethstaker/
Discord:
https://discord.gg/7z8wzehjrJ
Prysm客戶端團隊,
Discord:https://discord.gg/GVM5TJwzkU
條件
使用本教程需要對以太坊、ETH、Staking、Linux、MetaMask(Portis或Fortmatic)有一定的背景知識。
還需要準備:
Ubuntu服務器v20.04(LTS)amd64或者一個較新的,在本地計算機或云端安裝和運行的Ubuntu服務器。
已安裝或已配置的瀏覽器插件加密錢包MetaMask(或Portis、Fortmatic)。一臺裝有操作系統(Mac、Windows、Linux等)和瀏覽器(Brave、Safari、FireFox等)的計算機。
從測試網到主網
如果你從測試網設置轉到主網設置,那么我強烈建議你在一個全新的(新安裝的)服務器實例上開始。本教程沒有對遷移場景進行測試,所以如果你使用的是此前安裝過的測試網軟件,那么無法保證你的操作能成功。
要求
硬件要求是一個比較大的話題。總的來說:一個相對較新的CPU、8GB內存的RAM(16GB更佳)、一個內存至少500GB的SSD(1TB更佳)、穩定的網絡,這些性能都會讓質押過程更加安全順暢。
注意:檢查你的可用磁盤空間。盡管你有一個容量較大的SSD,Ubuntu也會出現僅剩200GB可用空間的狀況。如果你遇到這種情況,請查看附錄C——擴展邏輯卷。
概覽
下面這個簡化圖表標明了本篇教程所涉及的范圍,標黃的即是本文會覆蓋到的部分:
整個流程可以概念化表述為:
生成驗證者密鑰對和存款數據
準備Ubuntu服務器(防火墻、安全設置等)
設置一個Eth1節點并同步Eth1區塊鏈的數據
配置Prysm客戶端并同步Eth1節點數據
存款并激活驗證者密鑰對
那我們現在就開始吧!
第1步:生成質押數據
參與質押首先要決定你想要運行的驗證者節點的數量,并基于此生成一些數據文件。
注意:如果你的存款數據和驗證者密鑰對已經生成,可以跳過這一步。
一個驗證者節點需要存32ETH,你的MetaMask錢包里要有相應足夠的ETH。比如,如果你計劃運行5個驗證者節點,你將需要準備160ETH(32*5)并且預留一些gas費。存款過程會稍后再講解,下面教大家怎么把設備運行起來。
下載存款工具(存款CLI)
點擊此處下載最新發布的存款命令行界面app(CLIapp)。
下載鏈接:
https://github.com/ethereum/eth2.0-deposit-cli/releases/
在“Assets”那一欄選擇與你的設備(如Windows、Mac、LinuxDesktop等)匹配的版本并下載。
運行存款工具(Eth2存款CLI)
解壓文件,里面應該有一個二進制文件(可執行文件)。存款工具生成用于質押的文件和一組助記詞。這組助記詞需要安全地保存。下面有兩種選擇:
建議方案:將這份二進制文件復制粘貼到USB驅動器里。連接到一臺此前從未連接過網絡的計算機,將文件復制到計算機里并開始運行。
不建議方案:在當前使用的計算機上運行。但是網絡連接可能會導致你的助記詞密鑰泄漏。如果沒有未聯網的計算機,那就在開始運行之前斷開網絡。
準備好之后,在終端窗口(或windows的命令提示符CMD)中運行這份文件以繼續使用下面列出的命令。確定好你要運行的驗證者節點的數量之后,用該數字替換。比如:?--num_validators2
Linux/Mac:
./deposit?new-mnemonic?--num_validators??--chain?mainnet
以太坊網絡當前已銷毀超251.37萬枚ETH:金色財經報道,據Ultrasound數據顯示,截止目前,以太坊網絡總共銷毀2,513,721.69枚ETH。其中,ETHtransfers銷毀232,145.21枚ETH,OpenSea銷毀230,049.97枚ETH,UniswapV2銷毀134,465.10枚。注:自以太坊倫敦升級引入EIP-1559后,以太坊網絡會根據交易需求和區塊大小動態調整每筆交易的BaseFee,而這部分的費用將直接燃燒銷毀。[2022/7/6 1:53:10]
Windows:
deposit.exe?new-mnemonic?--num_validators??--chain?mainnet
在你選擇的計算機執行上面的步驟之后,你將被要求創建一個驗證者密鑰存儲庫(validatorkeystore)密碼,并保存在一個安全的地方。在后面的步驟中,你將需要這個keystore來上傳驗證者密鑰到Prysm的驗證者錢包里。
隨后會生成一組助記詞,請保存在一個安全的地方,這至關重要。因為最終你需要助記詞來生成提款密鑰以提出質押的ETH,并且增加驗證者節點時也需要使用助記詞。如果你丟失了助記詞,就無法將你的資產提出了。
一旦你點擊確認已經記好助記詞之后,你的驗證者密鑰對便會生成。
新創建的驗證者密鑰對和存款數據文件會放置在指定位置。文件夾的內容如下所示:
關于這些文件:
文件deposit_data-.json包含驗證者公鑰和質押存款信息。該文件將用于完成隨后的ETH存款過程。
文件keystore-m...json包含經過加密的驗證者簽名密鑰。每一個驗證者節點對應一個“keystore-m”。該文件將被導入到Prysm驗證者錢包中以備質押時使用。隨后需要將這些文件復制粘貼到Ubuntu服務器中。
最后的步驟
現在你已經有了存款數據和密鑰存儲庫文件,接下來就可以設置Ubuntu服務器了。
注意:此時還不能進行存款。
首先完成并驗證你的質押設置非常重要。如果你的ETH存款激活了,但是質押設置還沒準備好的話,你將會受到怠工懲罰。
第2步:連接至服務器
使用一個SSH端口,連接至你的Ubuntu服務器。如果你用root登錄,最好是重新創建一個擁有管理權限的用戶賬戶,因為使用root用戶登錄存在很大的風險。
注意:如果你不是用root登錄的便可以直接跳到第三步。
創建一個新賬戶。在中填入你的用戶名,然后設置一個安全系數較高的密碼,并輸入其他可選信息。
#?adduser?
通過把新的用戶加入sudo群組中,來授予其管理權限。這樣用戶在命令行前輸入sudo,便會以超級用戶的權限來執行操作。
#?usermod?-aG?sudo?
可選項:如果你使用SSH密鑰通過root用戶連接你的Ubuntu系統,你需要將新創建的賬戶和root用戶的SSH密鑰數據組合起來。
#?rsync?--archive?--chown=:?~/.ssh?/home/
最后,退出登錄你的root賬戶,然后使用你新創建的用戶名登入Ubuntu服務器。
第3步:升級服務器
確保系統更新至最新的軟件和安全設置。
$?sudo?apt?update?&&?sudo?apt?upgrade$?sudo?apt?dist-upgrade?&&?sudo?apt?autoremove$?sudo?reboot
第4步:保護服務器
安全性十分重要。但由于本文不是針對安全性的指南,所有只列出了一些基礎的設置。
修改SSH默認端口
SSH默認端口是端口22,也是易受攻擊的矢量,因此可以修改SSH端口來防止攻擊。
在1024—49151之間選擇一個端口號,然后運行以下命令以檢索尚未使用的端口號。沒有其他顯示便意味著該端口號未被使用;顯示紅色便意味著已被使用,請嘗試其他端口號。比如:sudoss-tulpn|grep':6673'
$?sudo?ss?-tulpn?|?grep?':'
確定端口號可用之后,通過升級SSH設置來修改默認端口。
$?sudo?nano?/etc/ssh/sshd_config
在文件中檢索或者添加(如果沒有的話)Port22命令行。刪掉#(如果有的話)并在下面的命令行中輸入端口號。
Port?
參考下方的截圖。按CTRLx然后選‘y’,按回車保存并退出。
重新啟動SSH服務以顯示上述所作的修改。
$?sudo?systemctl?restart?ssh
登出并使用你的SSH端口號重新登入。
配置防火墻
Ubuntu20.04服務器可以使用默認的UFW防火墻來限制訪問該服務器的流量,不過要先設置其允許來自SSH、GoEthereum、Prysm的入站流量。
安裝UFW防火墻
按照下面的命令行輸入以保證在默認情況下安裝UFW。
$?sudo?apt?install?ufw
應用UFW默認值
明確地應用默認值,拒絕入站流量,允許出站流量。
$?sudo?ufw?default?deny?incoming$?sudo?ufw?default?allow?outgoing
AllowSSH允許SSH
允許你此前設置的端口號的入站流量。SSH要求TCP協議。比如:sudoufwallow6673/tcp
最近一周,以太坊網絡新增209.97萬枚NFT資產:金色財經報道,NFTScan數據顯示,最近一周,以太坊網絡新增209.97萬枚NFT資產,平均每天新增鑄造29.99萬枚NFT資產。[2022/6/15 4:26:57]
$?sudo?ufw?allow?/tcp
拒絕SSH端口號22
拒絕端口22/TCP的入站流量。
注意:當你完成了修改SSH默認端口之后再做這一步。
$?sudo?ufw?deny?22/tcp
允許GoEthereum
允許與GoEthereum的對等節點(端口30303)進行點對點(P2P)連接。如果你使用第三方托管的Eth1節點,則可以跳過這一步。
注意:如果你在本地托管你的Ubuntu服務器,你需要配置你的網絡路由以允許來自端口30303的入站流量。
$?sudo?ufw?allow?30303
允許Prysm客戶端
允許與Prysm的對等節點進行點對點連接,以便在信標鏈節點上(PrysmaticLabs的默認端口為13000/TCP和12000/UDP)進行操作。
注意:如果你在本地托管你的Ubuntu服務器,你需要配置你的網絡路由以允許來自端口13000和12000的入站流量。
$?sudo?ufw?allow?13000/tcp$?sudo?ufw?allow?12000/udp
開啟防火墻并檢查是否已按上述步驟正確地配置。
$?sudo?ufw?enable$?sudo?ufw?status?numbered
查看下面截圖以供參考。
第5步:配置定時器
Ubuntu內置了時間同步,并默認使用systemd‘stimesyncd服務進行激活。驗證其是否正確運行。
$?timedatectl
激活?NTPservice,運行方式:
$?sudo?timedatectl?set-ntp?on
參考下方的截圖:
只能使用單個定時器服務。如果你此前安裝過NTPD,你需要檢查此文件是否還存在,如果存在請操作下面的命令行以刪除。
$?ntpq?-p$?sudo?apt-get?remove?ntp
第6步:設置一個Eth1節點
參與質押需要一個Eth1節點。你可以選擇運行一個本地Eth1節點,也可以使用第三方提供的節點。本教程會詳細講解如何運行GoEthereum,如果你選擇第三方服務的話,可以跳過這一步。
注意:檢查你的可用磁盤空間。一個Eth1節點需要大概400GB的存儲空間。盡管你有一個容量較大的固態硬盤,Ubuntu也可能顯示僅剩200GB的可用空間。如果你遇到這種情況,請查看附錄C——擴展邏輯卷。
安裝GoEthereum
使用PPA(PersonalPackageArchives,個人安裝包存檔)安裝GoEthereum客戶端。
$?sudo?add-apt-repository?-y?ppa:ethereum/ethereum$?sudo?apt?update$?sudo?apt?install?geth
將GoEthereum作為后臺服務來運行,運行該服務需要創建一個賬戶。此種類型的賬戶無法登錄服務器。
$?sudo?useradd?--no-create-home?--shell?/bin/false?goeth
為Eth1區塊鏈創建數據目錄,用來存儲Eth1節點數據。
$?sudo?mkdir?-p?/var/lib/goethereum
設置目錄的權限。goeth賬戶需要權限來修改該數據目錄。
$?sudo?chown?-R?goeth:goeth?/var/lib/goethereum
創建一個systemd服務配置文件來對該服務進行配置。
$?sudo?nano?/etc/systemd/system/geth.service
將下列的服務配置復制粘貼到文檔中。
Description=Go?Ethereum?ClientAfter=network.targetWants=network.targetUser=goethGroup=goethType=simpleRestart=alwaysRestartSec=5ExecStart=geth?--http?--datadir?/var/lib/goethereum?--cache?2048?--maxpeers?30WantedBy=default.target
需要注意的flags:
flag--http用來公開與Prysm信標鏈節點連接的一個HTTP端口(http://localhost:8545)。
flag--cache指的是內部緩存的大小,以GB為單位。數值的增減取決于你的可用系統內存。設置2048將大概需要使用4-5GB的內存。
flag--maxpeers指的是所連接節點的最大數值。節點數量越多,意味著越多的網絡數據可用空間。所以記得不要將該數值設置得太低,否則你的Eth1節點將難以保持同步。
參考下方的截圖。按CTRLx然后選‘y’,按回車保存并退出。
重新加載systemd以顯示上述的更改并啟動服務。檢查狀態以確保其正確運行。
$?sudo?systemctl?daemon-reload$?sudo?systemctl?start?geth$?sudo?systemctl?status?geth
一名12歲的小學生在以太坊鏈上部署了一份智能合約:金色財經報道,RND創立者、12歲小學生黃正發布Solidity教程-智能合約創建和部署的視頻教程,黃正稱,一周前,在以太坊鏈上部署了一份智能合約。
這個課程是基于部署的這份智能合約的整個過程。課程將詳細介紹智能合約的創建、部署、測試、到發布及后續一系列內容,希望大家能從這個課程當中學會如何自己創建一份智能合約。[2022/2/6 9:34:11]
參考下方的截圖:
如果你每一步都做對了,它會用綠色字體顯示”active(running)"。如果沒有顯示,你需要倒回去重復上述步驟,修復問題。按Q退出(此操作不會影響geth服務)。
允許geth服務在系統重啟時自動啟動。
$?sudo?systemctl?enable?geth
GoEthereum節點將會開始同步。你可以運行下列命令來追蹤進程或檢查錯誤。按“CTRLc”退出(此操作不會影響geth服務)。
$?sudo?journalctl?-fu?geth.service
參考下方的截圖:
查看同步狀態
要檢查Eth1節點同步狀態,請使用下列命令訪問控制臺。
geth?attach?http://127.0.0.1:8545>?eth.syncing
如果顯示結果是false,表明你的同步已完成。如果顯示結果是同步數據,表明你仍在同步。作為參考,大概有7億個已知狀態knownStates.
參考下方的截圖
完成時按“CTRLd”以退出。
檢查連接的對等節點
要檢查你的Eth1節點所連接的對等節點,請使用下列命令訪問控制臺。
geth?attach?http://127.0.0.1:8545>?net.peerCount
對等節點總數peerCount不會超過你所設置的最大對等節點總數--maxpeers。如果無法找到需要同步的對等節點,參閱下一部分。
完成后按“CTRLd”以退出。
添加bootnodes(可選)
有時可能要花點時間才能找到要同步的對等節點,可以添加bootnodes以改善這種情況。
訪問https://gist.github.com/rfikki/a2ccdc1a31ff24884106da7b9e6a7453獲得最新的清單并根據下列操作修改geth服務:
$?sudo?systemctl?stop?geth$?sudo?nano?/etc/systemd/system/geth.service
修改ExecStart行,添加--bootnodesflag:在下方羅列出最新的對等點,并以逗號分割。
ExecStart=geth?--http?--datadir?/var/lib/goethereum?--cache?2048?--maxpeers?30?--bootnodes?"enode://d0b4a09d072b3f021e233fe55d43dc404a77eeaed32da9860cc72a5523c90d31e157.230.142.236:30303,enode://5070366042daaf15752fea340e7ffce3fd8fc576ac846034bd551c3eebac76db1116.202.231.71:30303"
保存文件之后退出。然后重啟服務并觀察。
$?sudo?systemctl?daemon-reload$?sudo?systemctl?start?geth$?sudo?journalctl?-fu?geth.service
注意:需要按照一系列特定的步驟來更新Geth。更多信息請參見“附錄A:更新Geth”。
第7步:下載Prysm
Prysm客戶端由兩份二進制文件組成:信標鏈節點和驗證者客戶端。本步驟將講解如何下載Prysm和那兩份二進制文件。
首先,訪問
https://github.com/prysmaticlabs/prysm/releases并找到最新發布的Prysm版本。通常在頁面的最頂部,比如:
在“Assets”那一欄(如果需要的話點擊展開)將下載鏈接復制粘貼至文檔beacon-chain-v…-linux-amd64以及文檔validator-v…-linux-amd64中。請確保復制的鏈接是正確的。
操作下列命令來下載這些文件。將下方指令部分的URL改為最新版本的下載鏈接。
$?cd?~$?sudo?apt?install?curl$?curl?-LO?https://github.com/prysmaticlabs/prysm/releases/download/v1.0.0/beacon-chain-v1.0.0-linux-amd64$?curl?-LO?https://github.com/prysmaticlabs/prysm/releases/download/v1.0.0/validator-v1.0.0-linux-amd64
重命名文檔并使它們可執行。將他們復制到目錄/usr/local/bin中,Prysm會在該處運行這些文件。根據需求修改文檔名。
$?mv?beacon-chain-v1.0.0-linux-amd64?beacon-chain$?mv?validator-v1.0.0-linux-amd64?validator$?chmod?x?beacon-chain$?chmod?x?validator$?sudo?cp?beacon-chain?/usr/local/bin$?sudo?cp?validator?/usr/local/bin
以太坊二層協議Metis宣布完成400萬美元融資:以太坊二層協議Metis宣布完成400萬美元的新一輪融資。該輪融資由Master Ventures、Oasis Capital、AU21、BMW Capital、Consensus Lab、Genblock Capital、M6等公司牽頭。目前,該公司在IDO之前的資金總額已達500萬美元。(Bitcoinschannel)[2021/5/10 21:45:31]
清理下載的文檔。
$?cd?~$?sudo?rm?beacon-chain?&&?sudo?rm?validator
注意:需要按照一系列特定的步驟來更新Prysm。更多信息請參見“附錄B:更新Prysm”。
第8步:導入驗證者密鑰對
導入你在第1步生成的密鑰對,以配置Prysm驗證者錢包。
復制驗證者密鑰存儲文件
如果你的驗證者存儲文件keystore-m…json不是在你的Ubuntu服務器上生成的,那么你就需要將這些文件復制粘貼到你的本地目錄中。你可以用USB把文件拷過去(如果你的服務器是本地的),也可以使用安全的FTP(SFTP)。
將文件放置在:
$HOME/eth2deposit-cli/validator_keys。如果需要的話創建文件目錄。
將密鑰存儲文件導入驗證者客戶端
創建一個目錄以存儲驗證者錢包數據,并授予當前用戶訪問該目錄的權限。當前用戶需要訪問權限來執行導入。在修改登入用戶名。
$?sudo?mkdir?-p?/var/lib/prysm/validator$?sudo?chown?-R?:?/var/lib/prysm/validator
運行驗證者密鑰導入進程。你需要提供放置已生成的密鑰存儲庫文件的路徑。比如:$HOME/eth2deposit-cli/validator_keys
$?cd?/usr/local/bin$?validator?accounts?import?--keys-dir=$HOME/eth2deposit-cli/validator_keys
然后會出現一些使用條款,你需要輸入接受accept才能繼續下一步。
你將需要提供一個錢包目錄,在這里你可以創建新的錢包。輸入:/var/lib/prysm/validator
然后創建一個錢包密碼并保存在一個安全的地方。稍后你配置驗證者時將需要使用這個密碼。
接下來你需要提供你在第1步生成的驗證者密鑰對。
如果輸入正確,密鑰將被導入。
創建一個錢包密碼文件
創建一個文件來保存錢包密碼,這樣Prysm驗證者服務就可以在不知道密碼的情況下訪問該錢包了。文件命名為:password.txt
$?sudo?nano?/var/lib/prysm/validator/password.txt
將你的新錢包密碼導入文件中,用你的密碼替換掉YourNewWalletPassword。
參考下方的截圖。按CTRLx然后選‘y’,按回車保存并退出。
接下來會講如何設置驗證者目錄以及密碼文件的訪問權限。
現在已經導入成功并且設置好錢包了。
第9步:配置Prysm信標節點
在這一步,你要把節點作為服務那樣來配置并運行,因此如果系統重啟,這個過程將自動重新開始。
設置賬戶和目錄
為信標節點的運行創建一個賬戶。這種賬戶不能用來登錄進入服務器。
$?sudo?useradd?--no-create-home?--shell?/bin/false?prysmbeacon
為信標節點的數據庫創建數據目錄和設置權限。
$?sudo?mkdir?-p?/var/lib/prysm/beacon$?sudo?chown?-R?prysmbeacon:prysmbeacon?/var/lib/prysm/beacon$?sudo?chmod?700?/var/lib/prysm/beacon$?ls?-dl?/var/lib/prysm/beacon
參考下方的截圖。
創建和配置服務
創建一個systemd服務的config文檔來配置服務
$?sudo?nano?/etc/systemd/system/prysmbeacon.service
將下面這段代碼復制粘貼到文檔里
Description=Prysm?Eth2?Client?Beacon?NodeWants=network-online.targetAfter=network-online.targetUser=prysmbeaconGroup=prysmbeaconType=simpleRestart=alwaysRestartSec=5ExecStart=/usr/local/bin/beacon-chain?--datadir=/var/lib/prysm/beacon?--http-web3provider=http://127.0.0.1:8545?--accept-terms-of-useWantedBy=multi-user.target
需要注意的flags:
--http-web3provider如果你正在使用一個遠程或第三方的Eth1節點,你需要改變這個值。如果你是在本地創建Eth1節點的,這里不需要改動。
--accept-terms-of-use需要自動啟動服務。使用這個flag表示接受Prysm的使用條款。
參考下方的截圖。按CTRLx然后'y',按回車保存然后退出。(譯注:此處原文無截圖)
程序員創建標準化代理合約以解決以太坊合約規模的限制:7月19日消息,當有太多函數和代碼時,以太坊合約可能會達到最大合約大小24KB的限制,程序員Nick Mudge在他7月10日的博客中透露,盡管V神堅持使用“代理合約”可能是解決這些限制的潛在方法,但他創建的標準化代理合約“鉆石標準”可能為其錦上添花。代理合約是指通過借用其他合同的功能來保持較小規模的合約。Mudge指出,ERC1400安全代幣標準需要很多函數和事件,實現標準契約很容易就會受到限制。而“鉆石標準”可以將程序員如何從任意數量的合同中創建小合約借用功能。(Cointelegraph)[2020/7/20]
重新加載systemd以顯示更改。
$?sudo?systemctl?daemon-reload
啟動服務并檢查,確保正確運行。
$?sudo?systemctl?start?prysmbeacon$?sudo?systemctl?status?prysmbeacon
參考下方的截圖
如果你每一步都做對了,它會用綠色字體顯示”active(running)"。如果沒有顯示,你需要倒回去重復上述步驟,修復問題。按Q退出(不會影響prysmbeacon的服務)。
允許服務隨系統重啟而自動重啟。
$?sudo?systemctl?enable?prysmbeacon
如果Eth2鏈處于創世后的狀態,Prysm的信標鏈會開始同步數據。它可能要花幾個小時才能完全實現同步。你可以通過運行journalctl命令來追蹤進程或檢查錯誤。按CTRLc退出(將不會影響prysmbeacon的服務)
$?sudo?journalctl?-fu?prysmbeacon.service
日志的截位視圖會顯示以下狀態信息。
Nov?27?06:20:48?ETH-STAKER-001?bash:?time="2020-11-27?06:20:48"?level=info?msg="Processing?deposits?from?Ethereum?1?chain"?deposits=1024?genesisValidators=1019?prefix=powchain
當Eth2主網啟動,信標鏈和驗證者將自動開始處理數據。
注意:如果你的Eth1節點仍在同步,你將會出現以下報錯信息。當同步完成了,它會自動消失。
Nov?27?06:16:29?ETH-STAKER-001?bash:?time="2020-11-27?06:16:29"?level=error?msg="Could?not?connect?to?powchain?endpoint"?error="could?not?dial?eth1?nodes:?eth1?node?using?incorrect?chain?id,?0?!=?1"?prefix=powchain
第10步:配置Prysm驗證者客戶端
在這一步,你需要將你的驗證者客戶端作為一項后臺服務來配置和運行,因此系統重啟時這個進程會自動重啟。
創建賬戶和目錄
為驗證者客戶端的運行創建一個賬戶。這類賬戶無法登錄服務器。
$?sudo?useradd?--no-create-home?--shell?/bin/false?prysmvalidator
這個驗證者數據目錄已經在第8步創建了。現在設置權限,使得這個prysmvalidator賬戶可以修改這個數據目錄。
$?sudo?chown?-R?prysmvalidator:prysmvalidator?/var/lib/prysm/validator$?sudo?chmod?700?/var/lib/prysm/validator$?ls?-dl?/var/lib/prysm/validator
參考下方的截圖。
驗證者錢包的password.txt文檔在第8步已經創建了。現在設置權限,使得只有prysmvalidator的賬戶可以讀取這個文檔。
$?sudo?chmod?-R?700?/var/lib/prysm/validator/password.txt$?sudo?ls?-lh?/var/lib/prysm/validator/
創建并配置服務
創建一個systemd服務文件來配置服務
$?sudo?nano?/etc/systemd/system/prysmvalidator.service
將下面這段代碼復制粘貼到文檔里
Description=Prysm?Eth2?Validator?ClientWants=network-online.targetAfter=network-online.targetUser=prysmvalidatorGroup=prysmvalidatorType=simpleRestart=alwaysRestartSec=5ExecStart=/usr/local/bin/validator?--datadir=/var/lib/prysm/validator?--wallet-dir=/var/lib/prysm/validator?--wallet-password-file=/var/lib/prysm/validator/password.txt?--graffiti=""?--accept-terms-of-useWantedBy=multi-user.target
需要注意的flag:
--graffiti=""填上你的涂鴉字串符。出于安全和隱私,應避免使用能唯一辨識你的信息。比如--graffiti"HelloEth2!FromDominator"。
參考下方的截圖。按CTRLx然后選‘y’,按回車保存并退出。
重新加載systemd以顯示更改。
$?sudo?systemctl?daemon-reload
開啟服務并檢查,確保運行正確。
$?sudo?systemctl?start?prysmvalidator$?sudo?systemctl?status?prysmvalidator
參考下方的截圖
如果你每一步都做對了,它會用綠色字體顯示”active(running)"。如果沒有顯示,你需要倒回去重復上述步驟,修復問題。按Q退出(不會影響prysmvalidator的服務)。
允許服務隨系統重啟而自動重啟。
$?sudo?systemctl?enable?prysmvalidator
你可以通過運行journalctl命令來追蹤進程或檢查錯誤。按CTRLc來退出(將不會影響prysmvalidator的服務)
$?sudo?journalctl?-fu?prysmvalidator.service
日志的截位視圖會顯示以下狀態信息。
ETH-STAKER-001?systemd:?Started?Prysm?Eth2?Validator?Client.level=warning?msg="Running?on?ETH2?Mainnet"?prefix=flagslevel=info?msg="Opened?validator?wallet"?keymanager-kind=direct?level=info?msg="Checking?DB"?databasePath="/var/lib/prysm/validator"?level=info?msg="Starting?validator?node"?prefix=node?...level=info?msg="Validating?for?public?key"?prefix=validator?publicKey=0x9072a8f02c18level=info?msg="Validating?for?public?key"?prefix=validator?publicKey=0xaa5ff8b63560level=info?msg="Waiting?for?beacon?chain?start?log?from?the?ETH?1.0?deposit?contract"?prefix=validatorlevel=info?msg="Beacon?chain?started"?genesisTime=2020-12-01?12:00:23?0000?UTC?prefix=validatorlevel=info?msg="Waiting?for?deposit?to?be?observed?by?beacon?node"?prefix=validator?pubKey=0x9072a8f02c18?status="UNKNOWN_STATUS"
你可以在beaconcha.in查看你的驗證者狀態。只需要搜索你的驗證者公鑰或使用你的MetaMask錢包地址進行搜索。你的數據可能要過一段時間才會在網站上顯示。
第11步:進行驗證者存款
現在你的節點已經設置好并開始運行,你將需要將ETH存入你的驗證者節點。
注意:如果你已經提交了你的質押存款,你可以跳過這一步。
這一步是關于將所需的ETH存入Eth2.0的存款合約。不要把ETH發送到存款合約。這需要在瀏覽器上通過Eth2.0的Launchpad網站啟動你的MetaMask(或其他)錢包。
注意:如果是在創世后進行的話,你需要在你的Eth1節點和信標鏈都完全同步完之前存入你的存款。如果你不這樣做,當你的Eth1節點或信標鏈在同步時,Prysm會處于怠工狀態,而你可能要遭遇怠工懲罰。
以太坊2.0Launchpad:
https://launchpad.ethereum.org/
一直隨著屏幕切換點擊這些警告步驟,直到你到達密鑰對生成的部分。選擇你打算運行的驗證者數量。選擇一個與你在步驟1中生成的驗證者文件數量相匹配的值。
往下滾動,看這些內容你是否同意,然后點擊“Continue”(繼續)。
你會被要求上傳deposit_data-.json文檔。這個文檔你是在步驟1生成的。瀏覽/選擇或拖拉這個文檔,然后點擊Continue。
連接你的錢包。選擇MetaMask(或者是其他支持的錢包),登錄,選擇存有你的ETH的錢包,然后點擊Continue。
你的MetaMask余額就會顯示出來。如果你選擇了主網且你有充足的ETH余額,網站會允許你繼續下一步。
然后會出現一個Summary(總結),顯示驗證者數和所需的ETH數量。如果你同意的話就給那些方框打勾,然后點擊Continue。
如果你準備好去存款了,點擊"InitiateAllTransactions"(啟動所有交易)。
當你到了可以確認每筆交易那一步時,MetaMask(或其他錢包)的窗口會自動彈出。
當所有的交易都成功完成時,你的質押也完成了!
恭喜你已經成功存入你的質押存款了!
查看你的驗證者存款狀態
新加入的驗證者需要等一下(幾個小時到幾天不等)才能激活。你可以以下幾步來查看你的密鑰狀態:
1.復制你的MetaMask(或其他)錢包地址。
2.前往這里:beaconcha.in/
3.用你的錢包地址搜索你的密鑰。
點進某個驗證者詳情,每個驗證者激活后你會看到在Status那一欄有預估時間。
現在你面前有一個條正在運作的信標鏈、一個驗證者節點以及你的主網存款。如果以太坊2.0主網處于運行中,一旦你的存款被激活,你將開始工作并賺取收益。
恭喜你:你終于正式成為了一名以太坊質押者!
是時候來一頓肥宅水狂歡了。
第12步:監測
因為一些還沒被解決的安全問題,監測這一部分將在未來補充到這份教程。
結束語及后續建議
感謝大家給我這個機會。希望這份教程能幫到大家。
后續步驟:
檢查三次所有密鑰與密碼備份。
重啟你的電腦并確保服務都能自動啟動。
了解如何升級客戶端與服務器軟件。
使用htop來監測本地電腦的資源
熟悉beaconcha.in,這樣你就能監測你的驗證者情況,其提供警報功能和最多3個POAP。
加入Ethstaker和Prysm的Discord,留意重要通知。
請在Discord,Twitter,orReddit分享對這份教程的反饋。
在Ethstaker的discord上幫助其他人設置。
用friendlink分享這份教程
支持一下:somer.eth
延伸閱讀
強烈建議大家從盡可能多的來源獲取信息,還有很多其他資源可以幫助你熟悉如何在Eth2上質押。
如果作者對這些資源還沒測試或驗證過,而你采用了的話,是要自己承擔風險的。
客戶端團隊的官方文檔Prysm|Lighthouse|Teku|Nimbus
/r/EthStakerSticky
以太坊2.0客戶端的非官方docker環境
如何在Ubuntu上設置Eth2主網驗證者系統
指南|如何在ETH2主網設置驗證者
指南|ETH2驗證者信標鏈節點的安全最佳實踐
質押節點的額外監察
以太坊2.0質押的Telegram服務
Appendix附錄A—Geth更新
如果你需要更新到Geth的最新版本,請按下列步驟:
$?sudo?systemctl?stop?prysmvalidator$?sudo?systemctl?stop?prysmbeacon$?sudo?systemctl?stop?geth$?sudo?apt?update?&&?sudo?apt?upgrade$?sudo?systemctl?start?geth$?sudo?systemctl?status?geth?#?<--?Check?for?errors$?sudo?journalctl?-fu?geth?#?<--?Monitor$?sudo?systemctl?start?prysmbeacon$?sudo?systemctl?status?prysmbeacon#?<--?Check?for?errors$?sudo?journalctl?-fu?prysmbeacon.service?#?<--?Monitor$?sudo?systemctl?start?prysmvalidator$?sudo?systemctl?status?prysmvalidator#?<--?Check?for?errors$?sudo?journalctl?-fu?prysmvalidator.service?#?<--?Monitor
Appendix附錄B—更新Prysm
如果你需要更新到Prysm的最新版本,請按下列步驟進行:
首先,前往這里找出最新的Linux發布。在asset部分(如果需要的話點擊展開)復制下載連接到beacon-chain-v…-linux-amd64和validator-v…-linux-amd64文檔。注意要復制正確的鏈接。
將下方指令部分的URL改為最新版本的下載鏈接。
$?cd?~$?sudo?apt?install?curl$?curl?-LO?https://github.com/prysmaticlabs/prysm/releases/download/v1.0.0/beacon-chain-v1.0.0-linux-amd64$?curl?-LO?https://github.com/prysmaticlabs/prysm/releases/download/v1.0.0/validator-v1.0.0-linux-amd64
停止Prysm的服務。
$?sudo?systemctl?stop?prysmvalidator$?sudo?systemctl?stop?prysmbeacon
重命名文檔使其可執行。復制它們到/usr/local/bin目錄。需要的話修改下方的文檔名。
$?mv?beacon-chain-v1.0.0-linux-amd64?beacon-chain$?mv?validator-v1.0.0-linux-amd64?validator$?chmod?x?beacon-chain$?chmod?x?validator$?sudo?cp?beacon-chain?/usr/local/bin$?sudo?cp?validator?/usr/local/bin
重啟服務并檢查錯誤。
$?sudo?systemctl?daemon-reload$?sudo?systemctl?start?prysmbeacon$?sudo?systemctl?status?prysmbeacon#?<--?Check?for?errors$?sudo?journalctl?-fu?prysmbeacon.service?#?<--?Monitor$?sudo?systemctl?start?prysmvalidator$?sudo?systemctl?status?prysmvalidator#?<--?Check?for?errors$?sudo?journalctl?-fu?prysmvalidator.service?#?<--?Monitor
清理已下載的文檔。
$?cd?~$?sudo?rm?beacon-chain?&&?sudo?rm?validator
Appendix附錄C—擴展邏輯卷
很多時候Ubuntu只預配200GB的較大固態硬盤,導致用戶在同步他們的Eth1節點時就耗盡存儲空間了。報錯信息近似于:
Fatal:?Failed?to?register?the?Ethereum?service:?write?/var/lib/goethereum/geth/chaindata/383234.ldb:?no?space?left?on?device
為了解決這個問題,假設你有一個大于200GB的固態硬盤,你可以通過下列步驟為LVM(邏輯卷管理)擴大容量。
$?sudo?lvdisplay?#?<--?Check?your?logical?volume?size$?sudo?lvm?>?lvextend?-l?100%FREE?/dev/ubuntu-vg/ubuntu-lv>?exit$?sudo?resize2fs?/dev/ubuntu-vg/ubuntu-lv$?df?-h?#?<--?Check?results
這會重新調整你的硬盤至它的最大可用空間。
如果你在這方面需要支持,請在EthStaker的Discord上尋求幫助。
編者按:早前,美團網CEO王興在其飯否賬戶中連續發出三條與加密貨幣領域相關的推文。而11日,王興再度提及加密貨幣,他提問伯克希爾·哈撒韋公司何時會開始投資加密貨幣?作為由巴菲特創立的一家主營保險.
1900/1/1 0:00:00親愛的用戶: BigONE將于2020年12月11日15:00上線VET、IRIS、ATOM杠桿交易,開通VET/USDT、IRIS/USDT、ATOM/USDT杠桿交易對,杠桿倍數為10倍.
1900/1/1 0:00:00摩根士丹利投資管理公司首席全球策略師魯奇·夏爾馬在他最新的評論文章中,提出了使比特幣成為全球儲備貨幣的理由.
1900/1/1 0:00:00Gate.io直播間作為行業內首個交易所內置直播功能,通過多樣性的直播形式為平臺用戶帶來具有深度、有趣、開放的信息內容.
1900/1/1 0:00:00Bitget全球站用戶:Bitget已恢復XRP充提幣服務。感謝您對Bitget的關注與支持! 相關公告 充幣教程 提幣教程 Bitget團隊 聲音 | 中央財經大學鄧健鵬:目前我國關于反假幣的.
1900/1/1 0:00:00市場情緒逐步兩極化后續走勢我們應該怎么看?自上周比特幣價格刷新歷史新高以來,突破20000美元便成為了市場萬眾期待的一個目標.
1900/1/1 0:00:00