私の知るところでは、ビットコインはP2Pプロトコルであり、a p2p protocol must have a dedicated central serverです。しかし、ビットコインは分散型と言われています。Bitcoinクライアントは接続する最初のIPアドレスをどのように決定しますか?
答えて
2009年に私たちはIRCを使ってネットワークをブートストラップしたので、すべてのノードはFreenode(後でLFnet)に接続してチャンネルに参加します。彼らのニックネームは、エンコードされたパブリックIPアドレスでした。
現在、Bitcoin Coreクライアントや他の多くの実装は、DNSシードに依存しています。 DNSシードは、ネットワークからランダムに選択されたいくつかのノードを返すように構成された特別なDNSサーバーです。 DNSシードの演算子は、シードによって返される公開可能なノードを列挙するためにクローラも実行します。現在、ビットコインコア・クライアントに含まれている
種子は以下のとおりです。
- bitcoin.sipa.be
- dnsseed.bluematt.me
- dnsseed.bitcoin.dashjr.org
- シード.bitcoinstats.com
- bitseed.xf2.org
- bitcoin.jonasschnelli.ch
あなたはこれらのサーバーのいずれかに要求を送信した場合、彼らはポート8333でビットコインを実行することが知られているランダムなIPアドレスの数が返されます:DNSの種に加え
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
を、コア・クライアントもありstatic list of IPsが最初に試行され、DNSシードを照会することなく再接続するために、以前に接続したピアをローカルデータベースにキャッシュします。
(免責事項:私はDNSの種の一つのオペレータ午前)
感謝あなたの素晴らしい答えのためにあなた! – Divlaker
私が心配しているのは、DNSサーバーがシャットダウンしているか、ビットコーンの死を招く外部の力によってブロックされているというリスクですか? – Divlaker
DNSシードは、ブートストラップを実行するためのいくつかのメカニズムの1つに過ぎません。トータルのブロックの場合は、以前に接続されていたノードに気付かないこともあります。これは、ノードが以前に知られていたピアや静的リストに再接続しようとするためです。ブートストラッピングしている場合でも、誰かにIPを求めて、 '-addnode'コマンドラインフラグを使って接続することができます。 – cdecker
- 1. pingはどのようにIPアドレスを解決しますか?
- 2. 接続されたクライアントのIPアドレスを取得するにはどうすればよいですか?
- 3. クライアントはどのようにサーバーのIPアドレスを検出しますか?
- 4. PyAMF:どのようにしてクライアントのIPアドレスを取得しますか?
- 5. 最初の16ビットIPアドレスに対して同じgeo-ip解決を行うことは安全ですか?
- 6. IPアドレスを使用してHerokuのクライアントからサーバーを接続する方法
- 7. どのように.NET/C#でドメイン名をIPアドレスに解決しますか?
- 8. どのIPアドレスがデータベースに接続されているかを調べるにはどうしますか?
- 9. C#TCPクライアントがIPアドレスに接続しない
- 10. Clispの接続クライアントのIPアドレスを取得
- 11. RMI:リモートオブジェクトのIPアドレスを決定する
- 12. localhostではなくIPアドレスに接続していますか?
- 13. 決定クライアントのインターネット接続は
- 14. どうすれば接続のIPアドレスを取得できますか?
- 15. パブリックIPアドレスに接続するJavaソケット
- 16. ブロードキャストIPアドレスに接続する
- 17. クライアントが接続しているサーバーのIPアドレスを確認する方法
- 18. Windowsソケット(C++)から接続ホストのIPアドレスを取得するにはどうすればよいですか?
- 19. インターネットIPアドレスを使用してローカルマシンのIPアドレスに接続できません
- 20. IPアドレスを使用してコンピュータに接続するにはどうすればよいですか?
- 21. クライアントをEC2にどのように接続できますか?
- 22. (JSP用の)WebクライアントのIPアドレスを特定するにはどうすればよいですか?
- 23. 特定のリモートIP/DNSアドレスに接続できるローカルIPアドレスを特定する方法
- 24. Bitcoinなどの分散型ネットワークでは、最初の接続後にノードがピアをどのように見つけますか?
- 25. TCPはサーバーを最初にクローズします。クライアントは最初に接続をクローズします
- 26. Cソケットプログラミング:IPアドレス(IPv6またはIPv4)サーバーの境界を取得し、クライアントを接続しますか?
- 27. サーバ上の接続されたクライアントのIPアドレスを確認する
- 28. jetty:http接続用に別のIPアドレスをini、iniを指定できますか?
- 29. クライアントはどのようにしてピアツーピア接続を確立しますか?
- 30. 接続されたクライアントのIPを確認しますか?
http://bitcoin.stackexchange.com/questions/3536/how-do-bitcoin-clients-find-each-other – Fi3