Bitcoin Core GUI 節點如何在 regtest 模式下正確連接和斷開連接?
我正在嘗試在 regtest 模式下使用 Bitcoin Core 建立一個私有比特幣網路。但是,有兩個問題:
- Bitcoin Core GUI 報告的埠與節點執行的埠不匹配;和
- 當對等點斷開連接(甚至被禁止)時,它會自動重新連接。
這就是我所做的。我創建了兩個文件夾,
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 秒,然後重新連接。
總結一下,我有兩個問題:
- 為什麼 Bob 節點上的埠號與我給它的埠號不匹配?
- 如何讓 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
命令。