比特币客户端如何确定第一个连接的IP地址?

问题描述 投票:0回答:2

据我所知,比特币是一个p2p协议,并且p2p协议必须有一个专用的中央服务器。但据说比特币是去中心化的

p2p bitcoin
2个回答
27
投票

早在 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
  • 比特币.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 种子之外,核心客户端还有一个静态 IP 列表可以首先尝试,它将在本地数据库中缓存之前联系过的所有对等点,以便重新连接而无需查询 DNS 种子。

(免责声明:我是其中一个 DNS 种子的运营商)


0
投票

在 Windows 上,您可以像这样执行 NSLookup:

nslookup seed.bitcoinstats.com
Server:  Fios_Quantum_Gateway.e
Address:  192.168.1.1

Non-authoritative answer:
Name:    seed.bitcoinstats.com
Addresses:  2600:1900:4000:4cc4:0:1::
          138.68.173.152
          142.93.200.9
          52.205.232.109
          52.30.154.84
          213.174.156.82
          34.241.94.237
          18.202.91.9
          51.79.82.75
          54.68.82.186
          69.4.94.226
          153.127.253.219
          69.55.55.188
          198.27.83.210
          116.203.99.217
          3.8.38.104
          51.195.28.51
          34.249.21.210
          46.137.123.109
          37.187.129.27
          13.112.109.34
          74.118.140.132
          64.227.26.97
          3.211.51.136
          3.81.243.143
          95.168.162.24

这些是我撰写本文时的结果,但每个 DNS 种子的结果可能会随着时间而改变。

请注意,实际上并不需要这样做;您的比特币核心节点将在首次启动时自动执行此操作,并且它将检查列出的几个 DNS 种子以获取要连接的节点的起始列表。

一旦连接到这些节点,它将向每个节点询问他们知道的比特币节点列表,每个节点将返回最多一千个对等地址。

您的节点将很快收集数千个潜在对等地址的列表,以便在寻找对等点时使用。

© www.soinside.com 2019 - 2024. All rights reserved.