開發者觀點 | 如何成為獨立的以太坊驗證者

稍作思考,

區塊鏈只是一個大型的單一資料庫,沒有任何人擁有,但任何人都可以寫入,寫入的內容無法刪除。如果你想對該資料庫進行寫入,你需要在你的電腦上擁有一份該資料庫的副本。

所以,你終於意識到成為以太坊驗證者是一個多麼好的投資,並決定試一試,看看能賺多少。

首先恭喜你!這是一個巨大的挑戰,我代表以太坊社群感謝你(不管你出於什麼原因成為驗證者——賺取區塊獎勵、讓以太坊更去中心化等等),感謝你的勇敢行動。

在同樣的去中心化精神下,我們將探討如何成為一個單獨的驗證者,或稱為在以太坊上進行單獨質押(solo staking)。

我們不會討論液態質押、服務質押等其他方式。我是說,既然你已決定成為驗證者,為何不以密碼朋克的方式來做呢?

先來熟悉一些詞彙:

以太坊自2022年9月15日“合併”後,已轉變為一個證明持股(Proof of Stake, PoS)區塊鏈。

這代表以太坊達成共識的方式已完全改變。

記得我們說過區塊鏈只是一個大型的單一資料庫,運行在多台電腦上,而該資料庫的狀態必須被網路中的所有電腦隨時掌握。參與網路的電腦(節點)必須就資料庫的當前狀態達成共識!

以太坊節點不再需要像PoW那樣解決複雜的數學問題來達成共識,而是,提前鎖定以太幣(ether),基本上就是說:

“嘿,我願意成為一個驗證者,負責新增區塊和驗證交易,如果我在執行這個任務時行為不端,你可以沒收我提前存入的以太幣(我的質押)作為懲罰。如果我表現良好,你就獎勵我新產生的以太幣!”

當超過三分之二的驗證者就上述資料庫的當前狀態達成共識時,該區塊鏈的狀態就被視為最終確定。

為什麼是三分之二的驗證者?

想像一下,如果我們要等待網路中所有驗證者(目前約有1,031,682個)都同意區塊鏈的狀態?那區塊鏈的最終確認速度會非常慢,幾乎無法使用。區塊鏈的最終速度取決於最慢的節點,考慮到以太坊最大程度的去中心化(也就是可以在普通消費者硬體上運行,速度比企業級超快電腦慢),我們必須考慮最慢的節點。所以,等待三分之二的驗證者似乎是一個合理的數字,不是嗎?😂😂😂

以太坊的安全模型可以總結為:“人類是理性的生物,想賺錢,會做出理性的決策來實現這些利益。因此,他們不會行為不端,因為如果行為不端,他們提前鎖定的以太幣(質押)就會被削減!”

用資本主義來達成安全,對吧?

首先,什麼是以太坊節點?

以太坊節點就是運行以太坊軟體(稱為以太坊客戶端)的電腦。就這樣,真的就這麼簡單。沒有花俏的詞彙,沒有其他。就是這樣!這就是以太坊節點。

這些節點構成了以太坊區塊鏈——一群運行類似軟體、能彼此通訊的電腦。

任何人都可以運行以太坊節點,但自己運行並沒有經濟利益。不要誤會,運行節點確實有好處(不要跟驗證者搞混)比如:

  1. 不需要信任任何其他節點,因為你可以自己驗證所有交易資料——真正的密碼朋克精神:“不信任,驗證!”
  2. 你可以更安全、更私密地使用去中心化應用(dApps),因為你不必將錢包地址和餘額洩漏給中介的可疑節點。
  3. 你可以將你的以太坊錢包直接連接到你自己運行的以太坊節點的RPC端點。這樣你就擁有唯一的存取權和優先權,能比其他人更快地將交易納入區塊,而不用在公共RPC端點上競爭。
  4. 你可以強制執行共識規則,避免被騙接受不符合規則的區塊——在極端情況下,所有節點可能串通,這時可以由節點進行社會恢復,選擇遵循誠實鏈。
  5. 網路中節點越多,越多元且堅韌,讓整個網路更難失效或被審查交易。
  6. 完整節點提供區塊鏈資料給輕量級客戶端(如Light Client),幫助用戶安全且去中心化地存取和互動,無需同步整個區塊鏈,擴展了應用範圍。

透過產生專用的‘魔法’簽名金鑰並將32 ETH質押到一個智能合約中,連結到這個金鑰,你就可以將你的以太坊節點轉變為驗證者。

驗證者是“啟動”的節點,負責處理用戶交易並將其定案(即最終確認)。

每筆交易的有效性都由所有驗證者(簽署證明)投票,並由他們質押的ETH作為保證。

由於驗證者處理並證明用戶交易,他們會因表現良好而獲得獎勵,行為不端則受到懲罰。如果驗證者被發現不誠實、惡意或嚴重疏忽,他們的質押將被削減甚至全部沒收,並從網路中驅逐。

這激勵驗證者保持誠實。

那麼,如何在以太坊上進行單獨質押(solo staking)呢?

你需要質押32 ETH,才能成為以太坊的驗證者。32 ETH在撰寫時約等於Ksh. 13,998,370.65(1 ETH = Ksh. 437,449.08),你現在讀到的時候1 ETH是多少呢?

他們是怎麼得出32 ETH的要求的?這已經內建在運行在客戶端軟體中的程式碼裡,參與以太坊區塊鏈。

接著,你需要運行特定的客戶端軟體來成為驗證者。以下是一些範例:

  1. Prysm (https://prysmaticlabs.com/))
  2. Lighthouse (https://lighthouse-book.sigmaprime.io/))
  3. Teku (https://consensys.io/teku))
  4. Nimbus (https://nimbus.team/))
  5. Lodestar (https://lodestar.chainsafe.io/))

這些軟體合稱為共識層軟體,因為它們負責在以太坊上達成共識——決定區塊鏈的狀態。

既然你知道要運行哪個客戶端軟體,並且擁有32 ETH,你就可以開始賺取豐厚的區塊獎勵了,是吧?嗯,沒錯,但正如往常一樣,細節很重要。讓我們看看這個過程如何變得非常複雜。

單獨質押(Solo Staking)

單獨質押意味著你自己完整運行節點,並且自己獲得所有區塊獎勵,不與他人分享。

最低硬體需求如下:

  1. CPU:四核心
  2. 記憶體:32GB
  3. 儲存:2TB NVME SSD,讀取IOPS >500,寫入IOPS >1700,非QLC(建議4TB NVME SSD,>5000讀取IOPS,>1700寫入IOPS,非QLC以免壓力過大)
  4. 網路需求(請向你的ISP確認):
    1. 流量:不限或每月至少2TB
    2. 速度:至少500mb/s共享——驗證者節點需要至少10mb/s專用網路速度
    3. IP地址:若可能,請用靜態IP
  5. 電源:不間斷電源供應(UPS)

硬體需求一開始看起來很嚇人,但你有看過Solana的硬體需求嗎?

記得我們之前的思考:

“區塊鏈只是一個大型的單一資料庫,沒有人擁有,但任何人都可以寫入,寫入的內容無法刪除。你若想寫入,必須在你的電腦上擁有一份副本。”

好啦,讓我們來看看每個硬體元件如何影響性能。

元件 對性能的影響
CPU – 影響區塊執行速度(4秒限制)
– 如果太慢,會錯過證明(attestations)和區塊提案
RAM – 當記憶體用完,服務會突然關閉或重啟,導致資料遺失。可能造成資料庫損壞,最壞情況下需重新同步驗證者節點,期間遺失2-3天的證明
– 隨著以太坊網路活動增加(如地址、智能合約、交易),對記憶體的需求也會增加,以維持鏈狀態並傳播交易
儲存 – 讀寫速度(IOPS)是區塊執行的主要瓶頸
網路 – 影響接收/傳送區塊的延遲,進而影響整體執行速度(4秒限制)
– 靜態IP能提升被其他節點發現的機率,避免低對等節點數問題
– 某些ISP可能阻止端口轉發(遠端存取),若沒有靜態IP則可能有問題
電源 – 突發停電(如雷擊、電力中斷)會導致節點非正常關閉,資料遺失,可能造成資料庫損壞,甚至需重新同步,期間遺失證明2-3天

記得我們說過,你需要運行一個共識層客戶端(如Lighthouse),你還需要運行一個執行層客戶端。

什麼是執行層客戶端?我很高興你問了…

在以太坊中,執行層客戶端是執行智能合約和交易的軟體。這是你喜愛的dApps(如Aave、Uniswap)以及你期待它們“月亮”的那個合約的運行場所。這個執行層就是以太坊虛擬機(EVM)。

執行層客戶端的例子包括:

  • geth
  • reth
  • nethermind
  • besu
  • erigon

備註:為了提升以太坊的韌性,建議使用少數的執行層客戶端。如果發生黑天鵝事件,比如市場佔有率約55%的geth出現重大漏洞,這會影響整個以太坊嗎?

區塊驗證流程如下:

  1. 在EVM上執行智能合約。這由運行執行層客戶端(如reth)來完成。
  2. 這個執行會改變區塊鏈的狀態。
  3. 這些變更必須傳播到整個鏈——記得我們的一個大型資料庫——以達成共識,所有節點都要同意此時的鏈狀態。這意味著執行層必須與共識層溝通。

舉例來說,設置reth(執行層客戶端)與Lighthouse(共識層客戶端):

以下步驟假設你已經熟悉Linux環境,包括在終端輸入命令(即使你只是從StackOverflow複製,沒完全理解它的作用,但沒關係,它能用)。

ls -al | grep | xxd | echo -n

你沒理解我剛剛輸入的內容?

如果ls -al | grep | xxd | echo -n看起來像是中文,那是時候翻翻書、複習你的Linux命令了。不用像我一樣成為大師(我用Arch BTW),但至少要會分辨cd和rm -rf /!

我們將在一台安裝Ubuntu的機器上操作。

首先,我們需要建立一個JSON Web Token(JWT),讓執行層軟體(reth)與共識層軟體(Lighthouse)能相互溝通。

逐行執行以下命令,建立名為jwtsecret的資料夾,並在其中產生jwt.hex檔案:

sudo mkdir -p /var/lib/jwtsecret

openssl rand -hex 32 | sudo tee /var/lib/jwtsecret/jwt.hex > /dev/null

稍後,我們會將這個JWT檔案(jwt.hex)設定到執行層與共識層的配置檔中。

下載reth並設定服務

下載最新版本的reth(https://github.com/paradigmxyz/reth/releases))及其數位簽章檔(.asc)來驗證完整性。

curl -LO https://github.com/paradigmxyz/reth/releases/download/v1.0.0/reth-v1.0.0-aarch64-unknown-linux-gnu.tar.gz

curl -LO https://github.com/paradigmxyz/reth/releases/download/v1.0.0/reth-v1.0.0-aarch64-unknown-linux-gnu.tar.gz.asc

進行簽章驗證:

gpg --keyserver keyserver.ubuntu.com --recv-keys 50FB7CC55B2E8AFA59FE03B7AA5ED56A7FBF253E

gpg --verify reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz.asc reth-v0.1.0-alpha.23-x86_64-unknown-linux-gnu.tar.gz

預期輸出:驗證簽章成功的訊息。

(範例)

gpg: Signature made Mon 24 Jun 2024 01:33:15 PM EAT

gpg: using EDDSA key 50FB7CC55B2E8AFA59FE03B7AA5ED56A7FBF253E

gpg: Good signature from “Georgios Konstantopoulos (Reth signing key for 2024 and on) <[email protected]>” [unknown]

gpg: WARNING: This key is not certified with a trusted signature!

gpg: There is no indication that the signature belongs to the owner.

指紋:50FB 7CC5 5B2E 8AFA 59FE 03B7 AA5E D56A 7FBF 253E

驗證發行簽章金鑰(–recv-keys)請參考(https://reth.rs/installation/binaries.html#signature-verification))

若驗證成功,解壓縮檔案並移動到/usr/local/bin:

tar xvf reth-v1.0.0-aarch64-unknown-linux-gnu.tar.gz

sudo cp reth /usr/local/bin

刪除暫存檔:

rm -r reth reth-v1.0.0-aarch64-unknown-linux-gnu.tar.gz.asc reth-v1.0.0-aarch64-unknown-linux-gnu.tar.gz

建立reth用戶(無伺服器存取權限)來運行背景服務,限制潛在攻擊面:

sudo useradd --no-create-home --shell /bin/false reth

建立資料夾存放區塊鏈資料,並設定擁有權:

sudo mkdir -p /var/lib/reth

sudo chown -R reth:reth /var/lib/reth

建立systemd服務檔,讓reth在背景運行:

sudo vi /etc/systemd/system/reth.service

貼入以下內容:

[Unit]

Description=Reth Execution Client (Holesky)

After=network.target

Wants=network.target

[Service]

User=reth

Group=reth

Type=simple

Restart=always

RestartSec=5

ExecStart=/usr/local/bin/reth node \

–chain holesky \

–datadir=/var/lib/reth \

–log.file.directory=/var/lib/reth/logs \

–authrpc.jwtsecret=/var/lib/jwtsecret/jwt.hex \

–full \

–port 30304 \

–http \

–http.api eth,web3,net,txpool,debug,trace \

–http.addr <內部IP> \

–http.port 8547 \

–ws \

–ws.addr <內部IP> \

–ws.port 8548 \

–metrics 127.0.0.1:6060

[Install]

WantedBy=default.target

儲存並退出(ESC → ENTER → :wq → ENTER),檢查設定並修正。

reth設定摘要:

  1. –chain:運行在Holesky測試網
  2. –datadir:存放區塊鏈資料的資料夾
  3. –log.file.directory:日誌存放路徑
  4. –authrpc.jwtsecret:指向之前產生的jwt.hex
  5. –full:運行完整節點
  6. –port:P2P通訊端口(預設30303)
  7. –http:啟用HTTP-RPC
  8. –http.api:RPC模組
  9. –http.addr:內部IP(例如192.168.x.x)
  10. –http.port:HTTP端口(預設8545)
  11. –ws:啟用WebSocket
  12. –ws.addr:WebSocket地址
  13. –ws.port:WebSocket端口
  14. –metrics:啟用監控

啟動reth:

sudo systemctl daemon-reload

sudo systemctl start reth.service

sudo systemctl status reth.service

預期輸出:顯示“active (running)”。按CTRL+C退出,reth會持續運行。同步約需6小時。

查看同步日誌:

sudo apt install ccze -y

sudo journalctl -fu reth -o cat | ccze -A

預期輸出:監控日誌。

若運行順利,設定自動啟動:

sudo systemctl enable reth.service

預期輸出:建立符號連結。

參考文件:https://reth.rs/

設定共識層客戶端

步驟與設定類似前述,下載Lighthouse(https://github.com/sigp/lighthouse/releases))並驗證完整性。

curl -LO https://github.com/sigp/lighthouse/releases/download/v5.2.1/lighthouse-v5.2.1-x86_64-unknown-linux-gnu.tar.gz

curl -LO https://github.com/sigp/lighthouse/releases/download/v5.2.1/lighthouse-v5.2.1-x86_64-unknown-linux-gnu.tar.gz.asc

驗證簽章:

gpg --keyserver keyserver.ubuntu.com --recv-keys 15E66D941F697E28F49381F426416DC3F30674B0

gpg --verify lighthouse-v5.1.3-x86_64-unknown-linux-gnu.tar.gz.asc lighthouse-v5.1.3-x86_64-unknown-linux-gnu.tar.gz

範例輸出:驗證成功。

解壓並移動:

tar xvf lighthouse-v5.1.3-x86_64-unknown-linux-gnu.tar.gz

sudo cp lighthouse /usr/local/bin

刪除暫存:

rm -r lighthouse*

建立Lighthouse用戶(無伺服器存取權限):

sudo useradd --no-create-home --shell /bin/false lighthousebeacon

建立資料夾並設定擁有權:

sudo mkdir -p /var/lib/lighthouse_beacon

sudo chown -R lighthousebeacon:lighthousebeacon /var/lib/lighthouse_beacon

sudo chmod 700 /var/lib/lighthouse_beacon

建立systemd服務檔:

sudo vi /etc/systemd/system/lighthousebeacon.service

貼入內容:

[Unit]

Description=Lighthouse Beacon Node (Holesky)

Wants=network-online.target

After=network-online.target

[Service]

User=lighthousebeacon

Group=lighthousebeacon

Type=simple

Restart=always

RestartSec=5

ExecStart=/usr/local/bin/lighthouse bn \

–network holesky \

–datadir /var/lib/lighthouse_beacon \

–execution-endpoint http://127.0.0.1:8551 \

–execution-jwt /var/lib/jwtsecret/jwt.hex \

–checkpoint-sync-url=https://holesky.beaconstate.ethstaker.cc/ \

–metrics \

–metrics-port 8009 \

–validator-monitor-auto \

–port 9001 \

–http \

–http-port 5051 \

–http-address <內部IP> \

–builder http://127.0.0.1

[Install]

WantedBy=multi-user.target

儲存退出(ESC → ENTER → :wq → ENTER),檢查並修正。

設定摘要:

  1. –network:測試網
  2. –datadir:資料存放路徑
  3. –execution-endpoint:執行層端點
  4. –execution-jwt:JWT檔案路徑
  5. –checkpoint-sync-url:快速同步URL
  6. –metrics:監控
  7. –metrics-port:監控端口
  8. –validator-monitor-auto:驗證者監控
  9. –port:P2P端口(預設9000)
  10. –http:HTTP連接
  11. –http-port:HTTP端口
  12. –http-address:內部IP
  13. –builder:外部建構者URL

啟動Lighthouse:

sudo systemctl daemon-reload

sudo systemctl start lighthousebeacon.service

sudo systemctl status lighthousebeacon.service

預期:顯示“active (running)”。按CTRL+C退出,Lighthouse會持續同步。同步時間約數分鐘。

查看同步日誌:

sudo journalctl -fu lighthousebeacon -o cat | ccze -A

若運行順利,設定自動啟動:

sudo systemctl enable lighthousebeacon.service

驗證初始根(checkpoint):

  1. 在瀏覽器中打開https://holesky.beaconcha.in/,查詢slot號碼。
  2. 比對Block Root與State Root與journalctl輸出。
  3. journalctl輸出。

詳細說明請參考(https://lighthouse-book.sigmaprime.io/intro.html))。

驗證者金鑰產生

驗證者金鑰是用於在以太坊上進行簽名和驗證的加密金鑰。主要有兩種:

  1. 驗證者簽名金鑰(Validator Key / Signing Key):

    • 用於簽署證明(attestations)和提案區塊。
    • 確保驗證者能證明自己的行為,維持驗證完整性。
    • 為熱金鑰,需線上運作。
  2. 提款金鑰(Withdrawal Key):

    • 用於管理和提取質押資金。
    • 當你想提取已質押的ETH和獎勵時,用此金鑰。
    • 為冷金鑰,建議離線存放以增強安全。

如何產生這兩個金鑰?我很高興你問了,我們將用密碼朋克的方式來產生。請做好準備…

建議用空隔機(air-gapped machine),即從未接觸過公共網路的電腦!

可以用便宜的Raspberry Pi(不到100美元)來做。

如果沒有Raspberry Pi或新電腦,也可以下載一個全新的作業系統,我推薦Tail OS。用USB啟動Tail OS,產生驗證者金鑰,將金鑰複製到USB,然後離開。

不論用哪種方式,務必在安全環境(家裡或辦公室)且連接可信WiFi網路下操作。也要實體遮擋所有攝像頭(手機、Webcam、筆電攝像頭),在產生金鑰前關閉所有網路(Ethernet、WiFi、藍牙)。

這是非常嚴格的隱私保護措施,對吧?你甚至不會用這種方式保護你的錢包種子短語(seed phrase)!我說真的,除非你在生成金鑰時採取這些措施,否則一旦金鑰被盜或遺失,後果不堪設想。

為安全起見,我們將示範如何在USB隨身碟上的Live OS(Tail OS)中操作。

為什麼選Tail OS?

因為Edward Snowden都推薦它!你不知道他是誰嗎?快去查。

下載最新版本的以太坊驗證者存款金鑰生成二進位檔(https://github.com/ethereum/staking-deposit-cli/releases)),並驗證其完整性。

curl -LO https://github.com/ethereum/staking-deposit-cli/releases/download/v2.7.0/staking_deposit-cli-fdab65d-linux-amd64.tar.gz

echo “ac3151843d681c92ae75567a88fbe0e040d53c21368cc1ed1a8c3d9fb29f2a3a staking_deposit-cli-fdab65d-linux-amd64.tar.gz | sha256sum --check”

預期輸出:OK。

驗證完成後,解壓縮並進入資料夾:

tar xvf staking_deposit-cli-fdab65d-linux-amd64.tar.gz

cd staking_deposit-cli-fdab65d-linux-amd64

產生驗證者簽名金鑰

在進行下一步前,請務必:

  • 關閉你的Ethernet、WiFi和藍牙
  • 實體遮擋所有攝像頭(手機、Webcam、筆電攝像頭)

我不能再強調了,務必保護你的金鑰!像HODL比特幣一樣緊握它們!

執行以下命令來產生金鑰,將<數量>替換成你要設定的驗證者數量,<你的提款地址>替換成你的實際提款地址:

./deposit new-mnemonic --num_validators <數量> --chain holesky --eth1_withdrawal_address <你的提款地址>

<你的提款地址>請用你自己擁有的安全非托管錢包地址(如冷錢包、多簽地址),不要用交易所錢包!用非托管錢包!

系統會提示你輸入以下資訊,請根據自己情況選擇:

  1. 選擇語言(本次會話)
  2. 確認你的提款地址(你的提款地址)
  3. 選擇助記詞語言(種子短語)
  4. 設定密碼來加密驗證者簽名金鑰
  5. 確認密碼

預期輸出:系統會產生助記詞,請抄寫在紙上,切勿存於線上或任何連網設備上

系統會提示你輸入助記詞,請按順序輸入,驗證你有正確記錄。

如果正確輸入,你會看到一個犀牛的ASCII藝術!

會產生兩個檔案:

  1. keystore-m_.json:驗證者簽名金鑰,用來簽署證明。務必妥善保管。
  2. deposit_data-.json:連結你的ETH存款與驗證者的檔案,只用一次(存款時用)。

將兩個檔案存到USB隨身碟中,整個staking-deposit-cli資料夾都複製過去。完成後刪除原始資料夾:

sudo rm -r $HOME/staking-deposit-cli/validator_keys

重啟你的主機(如筆電),拔除USB隨身碟,因為不會有持久存儲。

將驗證者金鑰加入節點

將USB插入你的驗證者節點,找到金鑰檔案名稱:

lsblk

預期輸出:找到你的USB裝置(如sda),名稱類似。

掛載USB到/media:

sudo mount /dev/sda1 /media

(請將sda1換成你的裝置名稱)

進入USB資料夾,複製金鑰到你的節點HOME:

cd /media/staking-deposit-cli

sudo cp -r validator_keys ~

卸載USB:

cd

sudo umount /media

建立密碼檔(用來解密金鑰):

先列出金鑰檔名:

ls

複製金鑰檔名,建立密碼檔:

sudo vi <金鑰檔名>.txt

輸入你之前設定的密碼,存檔退出。

存入32 ETH,成為驗證者

這是最重要的步驟:將32 ETH送到驗證合約。

不要直接轉帳到合約地址(0x0000…),而是一定要透過官方的Ethereum Launchpad(http://launchpad.ethereum.org/))完成。

若直接轉帳,交易會失敗!

務必多次確認合約地址正確(包括Ethereum Foundation、EthHub、EtherScan等多個來源),確保地址是0x0000…。

由於我們用的是測試網(holesky),因此用測試網的Launchpad(https://holesky.launchpad.ethstaker.cc/))。

如何取得測試網ETH?

  1. 先到https://holesky-faucet.pk910.de/,試著領取完整的32個測試ETH。
    • 成功則跳過
    • 不成功就領取能領的數量,繼續操作
  2. 加入Discord伺服器:https://discord.gg/ethstaker
  3. 加入#cheap-holesky-validator頻道
  4. 在文字框輸入:/cheap-holesky-deposit <你的ETH地址>,送出
  5. 點擊產生的連結(如Signer.is)

用Metamask簽署訊息,複製連結網址,貼到簽署框。

檢查必要的免責聲明

打開https://holesky.launchpad.ethstaker.cc/,點“Become a validator”。

仔細閱讀所有免責聲明。

不要只點“接受條款”而沒看內容,要理解。

一直點到“上傳存款資料”部分。不要擔心“選擇客戶端”和“產生金鑰”部分,因為你已經跟著本指南操作過了。

進行存款

將之前產生的deposit_data-.json檔案上傳到指定區域,點擊直到看到下一頁。

在此頁面,你必須勾選所有免責聲明框,才能繼續。在此之前,請點擊“Learn here how to do it safely”來確認你沒有被釣魚。

你會看到一個頁面,顯示以太坊Beacon存款合約地址。確認該地址與你的錢包顯示一致後,才點“Send Deposit”。

確認無誤後,點擊“Send Deposit”並依照Metamask或其他錢包的指示操作。

交易成功後,你可以點擊黃色標記的外部連結,追蹤驗證者的啟動進度與表現。建議收藏這些連結。

別擔心,若一開始沒顯示出來,給它點時間更新🙂。

恭喜!你已成為以太坊去中心化的一份子,超酷的吧!

退出驗證者

在驗證者的生命週期中,某個時候你可能想退出,並取回你的資金(32 ETH)和獎勵(如果有的話),前提是你有設定提款地址——如果你跟著本指南走,應該都已經有了。

如果你想自願退出(我不太懂為何要這樣做,難道區塊獎勵不夠嗎?想轉去Solana?),以下是步驟(以Lighthouse為例):

驗證者可以提交自願退出訊息,停止提案和證明。

前提:驗證者必須是活躍狀態、未被削減、已激活至少256個epoch(約27小時)。

注意:提交退出後,仍需執行職責直到正式退出,以免受罰。

退出流程約需5個epoch(約32分鐘),實際時間視排隊情況而定。

啟動自願退出

用lighthouse的命令:

  • –keystore:指定驗證者金鑰路徑(json檔)
  • –beacon-node:指定Beacon節點端點(預設http://localhost:5052)
  • –network:網路(預設mainnet)
  • –password-file:密碼檔路徑(若未提供,系統會提示)

輸入密碼後,系統會要求你輸入退出短語(exit phrase)作最後確認。

範例(在holesky測試網):

lighthouse --network holesky account validator exit --keystore /path/to/keystore --beacon-node http://localhost:5052

系統會提示你輸入退出短語,確認後提交。

退出成功後,驗證會進入待確認狀態,可能需數分鐘。

目前epoch:29946,退出epoch:29951,可提取時間約1920秒。

全額提取資金

2023年4月12日的Capella升級後,若驗證者有設定正確的提款憑證(0x01),退出時會將全部資金(包括獎勵)轉到提款地址。詳情請參考Ethereum.org。

不同客戶端的退出流程略有不同,以下列出:

Prsym (https://docs.prylabs.network/docs/wallet/exiting-a-validator))

Nimbus (https://nimbus.guide/voluntary-exit.html))

Lodestar (https://chainsafe.github.io/lodestar/run/validator-management/validator-cli#validator-voluntary-exit))

Teku (https://docs.teku.consensys.net/HowTo/Voluntary-Exit))

此篇文章包含測試網與主網的連結與流程,為何?因為我手上沒有32 ETH,請根據你要成為驗證者的鏈(測試或主網)調整。

這篇文章長到令人咋舌!

你已閱讀6,309字,約40,289字符,完整展現了單獨質押的流程。

希望你一開始的期待都已被滿足,現在可以成功設置自己的驗證者。

我們在鏈的另一端,討論EigenLayer是否為Ethereum結算的未來,同時嘲笑Solana總是離線,還有Cardano的學術論文(那是另一個故事了!)

ETH0.81%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言