ethereum PoS 節點架設
Last updated
Last updated
[2024 更新]
The merge (POS) 之後必須要架設兩個 client 才能正常執行節點。
分別為 execution layer(例如 Geth ) 以及 consensus layer (例如 Prysm, Loadstar)
consensus client (layer) 也稱為 Beacon Node、CL Client
從以下網站可以查看目前哪些節點較多人用: https://clientdiversity.org/#distribution
叫做 validator node,可使用 consensus layer 的 client 架設,validator node 用來 stake 32 ETH, 並且存放錢包私鑰、產生區塊等。
validator node 只與 beacon node 連接
以下使用 Prysm
1.需要先安裝 bazel (專案建構工具)
brew install bazelisk
2.安裝 Prysm 並編譯可執行節點檔案
1.執行 execution node
--execution-endpoint 為 Geth 的 RPC endpoint
完整教學: https://docs.prylabs.network/docs/advanced/proof-of-stake-devnet#manual-setup-built-from-source
執行 beacon node 後要等個幾分鐘,開始 sync 後才不會有類似如下的 error
其他參考:
每個 slot 為 12 秒,一個 epoch 為 32 個 slot:6.4 分鐘。
文件描述特定 epoch 後 beacon chain 會執行特定事項 (beacon state transition)。
https://notes.ethereum.org/7CFxjwMgQSWOHIxLgJP2Bw#A-note-on-Ethereum-20-phase-0-validator-lifecycle
此合約讓大家可以呼叫 deposit(),支付 32eth 同時,並且放入參數,為成為 PoS validator 必要條件,在此合約成功 deposit 後會 emit 事件,ETH beacon chain 監聽到後會把此申請人加入 queue。
之後 deposit function 用 merkle tree 的方式去做 verify。
deposit_date_root 在 cli tool 產生的deposit.json 內,其使用如下參數:validator's public key, withdrawal credentials, the amount of ETH being staked, and the validator's signature.