每個節點是否動態連接到其連接節點的對等節點?
我想以擁有 5 個節點的私有乙太坊網路為例,但我們可以將其推廣到擁有數千個節點的更大網路。在圖中,雙箭頭表示已連接的對等點,它們使用 . 添加自己
addPeer()
。稍後,Node_1
添加Node_-2
和Node-3
作為對等方使用addPeer()
,因為它只知道enode://pubkey@ip:port
{Node-2
和Node-3
} 並連接到網路。**$$ Q1 $$**之後,是否會
Node_1
自動獲取Node-2
和Node-3
連接的節點enode://pubkey@ip:port
,即 {Node-4
和Node-5
} 並動態連接到它們?然後還獲取Node-4
並連接到該節點Node-5
的連接節點。該操作可以遞歸地完成。如果否,則do 靜態保持為僅連接到和。enode://pubkey@ip:port``Node-6``Node-1``Node-2``Node-3
**$$ Q2 $$**這與第一個問題有關。如果
Node-1
無法獲取Node-2
andNode-3
的連接節點enode://pubkey@ip:port
,並且僅保持與Node-2
and的連接Node-3
,則在幾個小時後Node-2
關閉Node-3
。它是否也會導致Node-1
與網路斷開連接?
據我了解,當在區塊鍊網路中添加一個新節點時,節點之間會形成一個網狀網路。這是去中心化的核心概念。如果某個節點關閉,那麼系統可以保持啟動,直到區塊鍊網路中的至少一個節點啟動。
根據geth 文件-
如何找到對等點
Geth 不斷嘗試連接到網路上的其他節點,直到它有對等點。如果您在路由器上啟用了 UPnP 或在面向 Internet 的伺服器上執行乙太坊,它也將接受來自其他節點的連接。
Geth 通過稱為發現協議的東西找到對等點。在發現協議中,節點相互閒聊以了解網路上的其他節點。為了開始,geth 使用了一組引導節點,其端點記錄在原始碼中。