Network

與外部池的專用網路握手

  • December 16, 2017

我正在嘗試執行一個專用網路,我通過為我的所有節點提供一個引導節點來做到這一點。我時不時地在我的節點上註意到我將收到來自網路外部的對等點。經過進一步檢查admin.peers,我注意到它們是與公共游泳池的握手。我不明白這是怎麼發生的,因為我通過提供--bootnode標誌覆蓋了預設引導節點,所以我的節點不應該能夠找到我的網路之外的其他節點與之握手?

我有一個類似的問題。我沒有覆蓋引導節點,因此我沒有使用該--nodiscover標誌。但是,我有 2 個節點 - 共享相同的 genesis 文件和網路 ID,在 2 個不同的虛擬機上執行,但它們不能將彼此辨識為對等點。geth 控制台中的protocols節點admin.nodeInfo在兩個節點上是相同的:

protocols: {
     eth: {
       difficulty: X,
       genesis: "0xX",
       head: "0xX",
       network: X
     }
}

然而,雖然他們不承認對方,但取決於我什麼時候跑步,admin.peers我通常會得到

> admin.peers
[]

但有時會出現一個新的隨機節點:

[{
   caps: ["eth/62", "eth/63", "par/1", "par/2"],
   id: "X",
   name: "Parity/v1.5.11-stable-f067f12-20170314/x86_64-linux-gnu/rustc1.15.1",
   network: {
     localAddress: "172.17.0.2:55516",
     remoteAddress: "X"
   },
   protocols: {
     eth: "handshake"
   }
}]

我一直在隨機選擇的網路 ID 上執行節點,以找到一個沒有未知對等點的節點,但無論數量有多大,似乎總是有一個隨機節點出現在某個時刻,而且它並不總是具有相同的配置。

在啟動 geth 控制台時使用選項 –nodiscover 將防止與外部節點握手。我已經嘗試過了,它有效。對我來說不幸的是,我仍然無法在 AWS 上的私有區塊鏈的兩個節點之間建立握手。

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