複製比特幣比特幣如何找到新節點
我正在研究區塊鏈、cpp 和加密,所以我複製了比特幣並創建了一個新的山寨幣。
一切都像我預期的那樣工作正常,但我有一些問題我找不到答案。
關於節點的問題,讓我解釋一下我的情況。
我現在有 3 個虛擬機在執行比特幣複製錢包,它現在是一個新硬幣。
vm 1 = 連接到節點 100.00.00.0
幣名.conf
添加節點=100.00.00.0
vm 2 =為 vm 1提供 ip: 100.00.00.0的伺服器
vm 3 = 隨機錢包以及連接到 vm2 的 ip 100.00.00.0。
幣名.conf
添加節點=100.00.00.0
我從net.cpp中刪除了節點和 dns,做這個實驗好嗎?
strMainNetDNSSeed[][2]
pn種子[]
所以我開始做實驗,打開為錢包連接提供 IP的VM 2 。
在此之後,VM1 和 VM3 失去了連接,這很好,我預料到了。
所以我的問題是,如果伺服器離線,錢包 VM 1 和 VM 3 將如何自行連接並保持網路執行?以及如果 2 個使用者不知道它共享節點的 ip?
我在下面搜尋了這個主題,但找不到我要找的東西。
<https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery>
編輯: 下面的使用者是對的,在其他錢包獲得對等節點和節點之後,所以如果 VM2 離線,網路繼續執行,比特幣的驚人之處就不再重要了。:)
客戶端在第一次連接到網路時必須下載對等點列表。已知對等點由先前知道其他節點的節點廣播。然而,所有這條鏈都從兩個節點都知道的至少兩個 IP 開始。
您的客戶端將在從 VM2 下載已知對等點列表(基於您的範例)以在硬編碼或 conf 節點失敗時建立連接後檢查已知對等點。
更準確地說:
**比特幣客戶端有許多資源用於在初始啟動時定位網路。**按重要性排序:
1)主要機制,如果客戶端曾經在這台機器上執行過並且它的數據庫是完整的,那麼主要的機制是查看它的數據庫。它跟踪它在網路上看到的每個節點、上次看到它的時間以及它的 IP 地址。
客戶端可以使用 DNS 來定位連接到網路的節點列表。一種這樣的種子是 bitseed.xf2.org。客戶端將解決此問題並獲得比特幣節點列表。
客戶端有一個編譯到其中的半永久節點列表。
客戶端可以連接到著名的 IRC 網路,irc.lfnet.org,並通過這種方式找到其他節點。(從 0.8.2 版本開始,此方法已被刪除)
它從命令行 (-addnode) 或 bitcoin.conf 文件 (addnode=) 獲取 IP 地址。
特別是第 5 步:
只需根據您的節點在您的 bitcoin.conf(或 yourcoin.conf)文件中添加一個
addnode=ip.ip.ip.ip
參數。使用這種方法,您可以添加各種對等點,從個人 PC 到伺服器和交換節點或其他任何東西。
希望能幫助到你。