Bitcoin-Core

Bitcoin Core GUI 節點如何在 regtest 模式下正確連接和斷開連接?

  • December 26, 2017

我正在嘗試在 regtest 模式下使用 Bitcoin Core 建立一個私有比特幣網路。但是,有兩個問題:

  1. Bitcoin Core GUI 報告的埠與節點執行的埠不匹配;和
  2. 當對等點斷開連接(甚至被禁止)時,它會自動重新連接。

這就是我所做的。我創建了兩個文件夾,alice然後bob. 然後我從 OSX 終端啟動 GUI:

# start Alice node
$ open -n /Applications/Bitcoin-Qt.app --args -regtest -datadir=/Users/{username}/Desktop/alice/ -port=18444

# start Bob node
$ open -n /Applications/Bitcoin-Qt.app --args -regtest -datadir=/Users/{username}/Desktop/bob/ -port=18445

從愛麗絲的控制台,我做:

addnode 127.0.0.1:18445 add

這將創建到兩個節點的連接。

我想斷開兩個節點彼此的連接。

在 Alice 的控制台中,我使用:

addnode 127.0.0.1:18445 remove

在 Alice 的節點上,peer 是:

127.0.0.1:18445

然而,在 Bob 的節點上,peer 是

127.0.0.1:57594

但我希望它是:

127.0.0.1:18444

我嘗試使用以下方法從 Alice 中刪除 Bob 的節點:

addnode 127.0.0.1:18445 remove

控制台返回null但不刪除節點。

當我從 Alice 的節點嘗試這個時:

addnode 127.0.0.1:57549 remove

我明白了Error: Node has not been added. (code -24)

然後,我嘗試使用 Peers 選項卡將 Bob 的節點與 Alice 的節點斷開連接。右鍵點擊對等體 (Bob) 並選擇斷開連接。

節點斷開連接大約 45 秒,然後重新連接。

總結一下,我有兩個問題:

  1. 為什麼 Bob 節點上的埠號與我給它的埠號不匹配?
  2. 如何讓 regtest 節點在任意時間段內永久斷開連接,然後重新連接它們?

我想斷開兩個節點彼此的連接。

在 Alice 的控制台中,我使用:

addnode 127.0.0.1:18445 remove

這是不正確的。此命令只會從 addnode’d peers 列表中刪除 Bob 的節點。實際斷開 Bob 節點的正確命令是

disconnectnode "127.0.0.1:18445"

在 Alice 的節點上,peer 是:

127.0.0.1:18445

然而,在 Bob 的節點上,peer 是

127.0.0.1:57594

但我希望它是:

127.0.0.1:18444

出站連接不是從 P2P 埠進行的。而是選擇一個隨機的高編號埠來綁定,並從那裡建立出站連接。IIRC 這是由核心而不是軟體本身完成的。對於大多數進行出站連接的軟體來說,這種行為是標準的。

然後,我嘗試使用 Peers 選項卡將 Bob 的節點與 Alice 的節點斷開連接。右鍵點擊對等體 (Bob) 並選擇斷開連接。

節點斷開連接大約 45 秒,然後重新連接。

仍在建立連接,因為您沒有從兩個節點中刪除另一個節點(即一個節點在其對等數據庫中仍有另一個節點)。

執行此操作的正確方法是使用該onetry選項,因為這意味著該節點實際上並未添加到對等數據庫中,而是嘗試了一次。要斷開連接,您應該使用該disconnectnode命令。

引用自:https://bitcoin.stackexchange.com/questions/65196