Parity

如何讓我的 enode URL 使用/顯示外部 IP

  • October 27, 2017

當我從命令行在我的 mac 上執行(自定義開發和測試網路)奇偶校驗節點時,它會啟動並將我的 enode 顯示為enode://c2f9c6a...85b1d@192.168.0.241:99999IP 地址是我的路由器分配的 ip 192.168.0.241

這意味著雖然我可以連接到已設置的 bootnode 對等節點(我在 VPS 上有一個遠端節點),並且 bootnode 對等節點記錄我的節點已連接,但沒有其他遠端節點能夠使用我的節點擁有的 enode URL。

例如,當其他遠端同事啟動他們的節點時,他們也可以連接到引導節點,但無法發現我的節點,我也無法發現它們,因為它們也在路由器後面,並且存在同樣的問題。因此,這不是一個點對點網路,它集中在引導節點周圍,因為節點發現似乎不起作用。

所以我的問題實際上是兩個相關的問題,“如何讓我的 enode URL 使用/顯示外部 IP,我怎樣才能被發現?”,如果這不可能,那麼“如何在公共乙太坊鏈,我可以將它應用到我的自定義鏈嗎?”。

這裡有幾個問題,我在發布問題時沒有概述。

  1. 首先是您可能有其他節點在您的 LAN 中執行,您可能知道也可能不知道 - 所有這些節點的外部 IP 都是相同的。
  2. 第二個是您應該考慮在需要時將流量路由到您的節點的路由器後面。
  3. 第三是問題或多或少是關於在網路上被發現的。

因此,問題在於您是否要託管永久節點。

永久節點

託管永久節點的一個原因是,如果您想為網路託管一個引導節點,該網路可以由 LAN 外的任何人連接。因此,您需要一個外部 IP 地址,並且您需要確保沒有其他節點在您的路由器後面執行,即使不是直接或間接地也將使用外部 IP 地址。

Parity 中的這個解決方案需要--nat extip:<your_external_ip>在命令行啟動節點時設置參數。這將強制您的節點啟動並enode使用您的外部 IP 和埠創建一個。

然後enode可以將其包含在您的genesis.json文件中,並被其他節點用於同步到區塊鍊和其他內容。

非永久節點

這意味著您可以隨時啟動和停止節點,並且您不太關心網路是否可用。

在這裡你必須考慮你的路由器在做什麼。在這種情況下,您需要將您的路由器配置為30303打開埠(對於乙太坊或您自己的私有網路的其他值),並且port forwarding enabled此埠對於TCP UDP.

這使您的節點既可以與網路通信又可以被發現(UDP)。

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