插曲:ETH1與ETH2的名稱變遷
根據Ethereum Blog的說明,現在我們應該將ETH1稱作Execution layer,而ETH2則被稱為Consensus layer。然而,為了方便起見,標題中仍然簡單地稱之為ETH2。
Lighthouse的冗餘節點功能
我有一台伺服器,上面運行著ETH2客戶端Lighthouse
,用於ETH2驗證。Lighthouse的一個優點是可以添加冗餘的 fallback endpoints。
你可以添加 Redundant Beacon Nodes (lighthouse vc --beacon-nodes
),
以及 Redundant Execution Nodes (lighthouse bn --eth1-endpoints
)。
最近從官方文檔中發現原來可加入 Redundant Beacon Nodes ,所以我打算嘗試使用Infura提供的beacon node。
申請Infura ETH2項目
點選Create new project
,在PRODUCT
處選擇ETH2
,PROJECT NAME
可以隨意填寫。
建立完成後,你將得到待會需要用到的<PROJECT_ID>
和<PROJECT_SECRET>
:
測試請求
替換<PROJECT_ID>
和<PROJECT_SECRET>
後,執行以下的請求:
|
|
如果得到的結果如下,則表示成功。
|
|
在lighthouse中添加--beacon-nodes
接著,在執行lighthouse vc
後面添加:
--beacon-nodes https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io,http://localhost:5052
。
|
|
注意:
- 如果沒有指定
--beacon-nodes
,則會自動使用http://localhost:5052
;但現在我們添加了--beacon-nodes
,如果要使用本地節點,則必須明確地添加http://localhost:5052
。 - 我這裡直接在 mainnet 裡用,你可以先在 testnet 上進行試用。
確認成功
運行時,日誌中出現已連接至https://eth2-beacon-mainnet.infura.io/
等信息,即表示成功:
|
|
本地和Infura的Beacon節點都成功連接:
|
|
在https://infura.io/dashboard中也可以確認是否有請求,這就表示成功了。
如果你只是作為備用而使用Infura,而仍然運行本地beacon node的話。
那麼,你可以將--beacon-nodes
的順序改為先本地,後Infura:
--beacon-nodes http://localhost:5052,https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io
References
https://lighthouse-book.sigmaprime.io/redundancy.html
https://docs.infura.io/infura/networks/eth2-consensus-layer/getting-started/create-requests