2017-01-31 2 views
3

Angenommen, der Client führt eine fest codierte Tabelle einiger bekannter Knoten, um die Verbindung mit dem Netzwerk zu starten. Wenn dieser Knoten sich anfänglich mit dem Eingangspunkt verbindet, muss er dann seine eigenen Peers finden. Wie ist das gemacht?In einem verteilten Netzwerk wie Bitcoin, wie findet ein Knoten seine Peers nach der ersten Verbindung?

Der Knoten kann natürlich nicht einfach die Anfangsknoten für ihre Nachbarn fragen.

+0

"Der Knoten kann natürlich nicht einfach die Anfangsknoten für ihre Nachbarn fragen." - Kann es nicht? das ist mir nicht klar. – the8472

+0

@ the8472 Woops, was ich meine ist, das kann nicht "nur" sein, weil sonst würden Sie immer die gleichen Knoten (diejenigen, die in der Nähe der ursprünglichen Peers), so dass es einige zusätzliche Rebalancing Schritt sein muss. Ich frage mich insbesondere, ob etwas Komplexes wie Kademlia benötigt/benutzt wird, oder ob wir es so einfach wie zufällig haben können, Knoten Nachbarn zu fragen und dann Nachbarn Nachbarn für eine Weile. Würde das zum Beispiel die gesamte Netzwerkstruktur irgendwie schadhaft machen? Solche Dinge verwirren mich. – MaiaVictor

Antwort

2

Ich wundere mich insbesondere, wenn etwas Komplexes wie Kademlia erforderlich/verwendet wird, oder wenn wir es so einfach wie zufällig Knoten Nachbarn und dann Nachbarn Nachbarn für eine Weile fragen könnten.

Beide existieren, die allgemein verwendeten Begriffe sind strukturierte und unstrukturierte Overlay-Netzwerk. Letztere versuchen normalerweise, ein kleines Weltnetzwerk zu sein.

Ob ein einfaches Netzwerk ausreicht, hängt davon ab, was Sie damit machen wollen. Sie arbeiten im Allgemeinen gut genug, um Updates einfach an alle weiterzugeben oder separate Netzwerke für jedes Thema von Interesse zu bilden. Komplexere Dinge wie Adress-basierte Lookups hingegen werden von strukturierten Überlagerungen wie kademlia profitieren.

4

https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery erklärt den Prozess ziemlich gut.

Der Kern ist:

  • Ein zentraler Dienst selbst die öffentliche IP-Adresse zu identifizieren.
  • Hardcoded IRC-Kanal, DNS-Domänen oder IP-Adressen, um erste Knoten zu entdecken.
  • Gefolgt von jedem Knoten regelmäßig teilen ihre Peers mit bestimmten Werbebotschaften.
Verwandte Themen