ETH2 Lighthouse 添加 Infura 為冗餘 beacon node

這篇記錄了為 ETH2 Lighthouse 添加 Infura 為冗餘 beacon node.

插曲: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項目

https://infura.io/

點選Create new project,在PRODUCT處選擇ETH2PROJECT NAME可以隨意填寫。

點選 Create new project. PRODUCT 選擇 ETH2; 而 PROJECT NAME 隨意.

建立完成後,你將得到待會需要用到的<PROJECT_ID><PROJECT_SECRET>

待會需要用到的  和

測試請求

替換<PROJECT_ID><PROJECT_SECRET>後,執行以下的請求:

1
curl -X GET "https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io/eth/v1/beacon/genesis"

如果得到的結果如下,則表示成功。

1
{"data":{"genesis_time":"1606824023","genesis_validators_root":"0x4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95","genesis_fork_version":"0x00000000"}}

在lighthouse中添加--beacon-nodes

接著,在執行lighthouse vc後面添加:

--beacon-nodes https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io,http://localhost:5052

1
lighthouse vc <existing_param> --beacon-nodes https://<PROJECT_ID>:<PROJECT_SECRET>@eth2-beacon-mainnet.infura.io,http://localhost:5052

注意:

  1. 如果沒有指定--beacon-nodes,則會自動使用http://localhost:5052;但現在我們添加了--beacon-nodes,如果要使用本地節點,則必須明確地添加http://localhost:5052
  2. 我這裡直接在 mainnet 裡用,你可以先在 testnet 上進行試用。

確認成功

運行時,日誌中出現已連接至https://eth2-beacon-mainnet.infura.io/等信息,即表示成功:

1
INFO Connected to beacon node                endpoint: <https://eth2-beacon-mainnet.infura.io/>

本地和Infura的Beacon節點都成功連接:

1
INFO Connected to beacon node(s)             synced: 2, available: 2, total: 2, service: notifier

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

comments powered by Disqus