Go-Ethereum

Geth:bootnode 工具和 –nodiscover

  • February 6, 2022

在 Geth 中,如果我使用該--nodiscover選項,則預設情況下不會從其他節點發現我的節點。

相反,使用 geth 中實現的 bootnode 工具,首先我必須生成一個密鑰,然後我必須使用命令

bootnode -nodekey "./boot.key" -addr "addr:port" 

最後,我必須在啟動每個節點時將輸出的 enode 資訊作為參數(這樣我就可以擁有一個自動的“添加對等機制”)。但是,使用此工具,我無法使用--nodiscover選項。

使用此工具是否不太安全?可以從外部節點發現我的節點嗎?

是的,如果您的網路 ID 和創世文件在網路的另一端相同,您將是。刪除 –nodiscover 選項後,我開始從公共 IP 接收塊

當啟動一個geth節點時使用–nodiscover,它會阻止該節點被網路中的bootnode發現。因此,geth 節點不會加入 UDP 發現協議的 Ping-Pong 請求交換。

如果你想讓你的 geth 節點被 bootnode 發現,確保 –nodiscover 沒有使用 geth –datadir datadirpath 或者在 toml 配置文件中,NoDiscovery 標誌被設置為 false。

因此,您的第一個問題的答案是:不。只要引導節點是您網路中的受信任實體,它就是安全的。

第二個問題的答案是:要使節點自動相互連接,您必須像前面提到的那樣使用 bootnode。

引用自:https://ethereum.stackexchange.com/questions/44451