Go-Ethereum

如何使用 static-nodes.json /trusted-nodes.json 防止私網連接失去?

  • September 13, 2021

我有 2 個節點在同一網路 ID 下的專用網路上執行,通過連接

sudo geth --identity "testpython manage.py runserver  0.0.0.0:8001" --networkid 1100 --mine --nodiscover --rpc --rpcport 8544 --rpccorsdomain "*" --rpcapi "eth,web3" --port 30304 --ipcpath ~/.ethereum/geth.ipc --genesis /home/user/genesis.json --datadir /home/user/genesis console privatenet 2>/home/user/genesis/log_output5 

在一個節點中,在另一個具有不同埠的節點中。它具有相同的 genesis.json 並連接到相同的網路。當我通過連接時,

admin.addPeer(nodeUrl)

它將admin.peers在幾秒鐘內顯示連接,並在兩個節點中關閉。它保持節點之間的連接和斷開連接。並且在admin.peersremoteAddress 埠即將到來,就59823好像我已經給出了30305埠一樣。

localAddress: "192.168.15.69:30304",
remoteAddress: "192.168.15.71:59823"

我覺得這導致我不這樣做node to node ether transaction。一旦節點到節點的交易發生。在那之後我不能。

我在其他連結中讀到 static-nodes.json /trusted-nodes.json 可能有助於建立穩定的連接。請幫我

  1. 如何穩定連接
  2. 如果我們使用 static-nodes.json /trusted-nodes.json ,如何使用以及使用哪一個。請語法
  3. 如何在一個節點中進行交易並從另一個節點進行探勘?

私有網路上的節點之間失去連接

數據格式

[
     "enode://f4642fa65af50cfdea8fa7414a5def7bb7991478b768e296f5e4a54e8b995de102e0ceae2e826f293c481b5325f89be6d207b003382e18a8ecba66fbaf6416c0@33.4.2.1:30303",
     "enode://pubkey@ip:port"
]

您可以通過將以下內容放入<datadir>/static-nodes.json

連接的常見問題

有時你就是無法連接。最常見的原因是:

  1. 您的當地時間可能不正確。參與乙太坊網路需要準確的時鐘。檢查您的作業系統以了解如何重新同步您的時鐘(範例sudo ntpdate -s time.nist.gov),因為即使 12 秒太快也可能導致 0 個對等點。
  2. 某些防火牆配置可以阻止 UDP 流量流動。您可以使用靜態節點功能或admin.addPeer()在控制台上手動配置連接。

來源:

  1. https://github.com/ethereum/homestead-guide/blob/master/source/network/connecting-to-the-network.rst#static-nodes-trusted-nodes-and-boot-nodes

Geth 還支持一種稱為靜態節點的功能,如果您有某些始終想要連接的對等點。靜態節點在斷開連接時重新連接。您可以通過將以下內容放入 <datadir>/geth/static-nodes.json 來配置永久靜態節點:

[
 "enode://f4642fa65af50cfdea8fa7414a5def7bb7991478b768e296f5e4a54e8b995de102e0ceae2e826f293c481b5325f89be6d207b003382e18a8ecba66fbaf6416c0@33.4.2.1:30303",
 "enode://pubkey@ip:port"
]

https://geth.ethereum.org/docs/interface/peer-to-peer

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