據我所知,比特幣是一個P2P協議和a p2p protocol must have a dedicated central server。但據說比特幣是分散式。比特幣客戶端如何確定要連接的第一個IP地址?
3
A
回答
3
早在2009年,我們依靠IRC來引導網絡,因此每個節點都將連接到Freenode(稍後的LFnet)並加入一個通道。他們的暱稱是他們編碼的公共IP地址。
如今比特幣核心客戶端和其他許多實現都依賴於DNS種子。 DNS種子是特殊的DNS服務器,它被配置爲從網絡中返回一些隨機選擇的節點。 DNS種子的運營商也運行爬蟲來枚舉種子將要返回的公共可達節點。
當前包括在比特幣核心客戶端中的種子是:
- bitcoin.sipa.be
- dnsseed.bluematt.me
- dnsseed.bitcoin.dashjr.org
- 種子.bitcoinstats.com
- bitseed.xf2.org
- bitcoin.jonasschnelli.ch
如果你發送一個請求,這些服務器就會返回一個數字,已知在端口8333上運行的Bitcoin隨機IP地址的:
dig seed.bitcoinstats.com +short
71.19.155.244
173.254.232.51
45.79.97.30
198.252.112.64
35.128.8.141
108.17.18.165
98.208.76.134
8.29.28.12
52.62.2.124
96.234.214.85
47.89.24.56
212.164.215.159
52.62.42.229
68.52.96.191
115.66.205.171
24.250.16.39
201.43.160.155
5.3.253.18
100.40.179.172
50.135.169.181
186.149.249.18
101.201.44.207
96.35.97.46
124.188.118.196
82.8.4.79
除了DNS種子,核心客戶端也有一個static list of IPs首先嚐試,它將緩存本地數據庫中以前聯繫的所有對等端,以便重新連接而不必查詢DNS種子。
(聲明:我是DNS種子之一的運營商)
相關問題
- 1. 如何確定客戶端連接的服務器IP地址
- 2. 確定服務器上連接的客戶端的IP地址
- 3. 如何獲取Node.js中連接客戶端的IP地址?
- 4. 第一次沒有正確獲取客戶端IP地址
- 5. 在Node.js中指定客戶端連接的外出IP地址
- 6. 如何確定Web客戶端的IP地址(對於JSP)?
- 7. 客戶端的IP地址/ MAC地址
- 8. WebClient客戶端IP地址
- 9. Azure客戶端IP地址
- 10. 客戶端ip地址
- 11. 如何獲取客戶端IP地址
- 12. 如何獲取客戶端IP地址
- 13. 如何區分具有相同IP地址的多個客戶端的連接?
- 14. 綁定CXF客戶端源IP地址
- 15. 查找通過代理連接的客戶端的IP地址
- 16. Erlang:客戶端IP地址,發送數據包到特定的客戶端?
- 17. 如何區分從相同IP地址連接的2個Indy客戶端?
- 18. 檢索獲得連接重置客戶端的IP地址
- 19. SQL Server 2000獲取連接客戶端的IP地址
- 20. 在Clisp中獲取連接客戶端的IP地址
- 21. ServerSocket +客戶端套接字 - 如何獲取客戶端的IP地址?
- 22. 如何獲得客戶端系統的IP地址,Serverlet要求
- 23. 確定WCF SOAP中客戶端的IP地址UserNamePasswordValidator
- 24. 確定客戶端在Amazon ELB後面的IP地址
- 25. 使用IP地址連接到客戶端系統
- 26. SSH客戶端使用什麼IP地址連接到我?
- 27. 如何在接受C++連接之前獲取客戶端IP地址
- 28. 如何獲取連接到遠程桌面的客戶端的IP地址
- 29. 如何找到連接的客戶端在grails中的IP地址
- 30. 如何找到連接到服務器的客戶端的IP地址?
http://bitcoin.stackexchange.com/questions/3536/how-do-bitcoin-clients-find-each-other – Fi3