Go-Ethereum
Geth:bootnode 工具和 –nodiscover
在 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。