据我所知,比特币是一个p2p协议,p2p协议必须有一个专用的中央服务器.但据说比特币是分散的.
早在2009年,我们依靠IRC来引导网络,因此每个节点都将连接到Freenode(后来的LFnet)并加入一个频道.他们的昵称是他们编码的公共IP地址.
如今比特币核心客户端和许多其他实现都依赖于DNS种子.DNS种子是特殊的DNS服务器,配置为从网络返回许多随机选择的节点.DNS种子的运营商还运行爬虫来枚举种子返回的可公开访问的节点.
目前包含在比特币核心客户端中的种子是:
bitcoin.sipa.be
dnsseed.bluematt.me
dnsseed.bitcoin.dashjr.org
seed.bitcoinstats.com
bitseed.xf2.org
bitcoin.jonasschnelli.ch
如果您向任何这些服务器发送请求,他们将返回一些已知在端口8333上运行比特币的随机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种子之外,Core客户端还有一个静态的IP列表可以先尝试,它会缓存本地数据库中任何先前联系的对等点,以便重新连接而无需查询DNS种子.
(免责声明:我是其中一个DNS种子的运营商)