Verbindet sich jeder Knoten dynamisch mit den Peers seiner verbundenen Knoten?

Ich möchte ein Beispiel aus einem privaten Ethereum-Netzwerk geben, das 5 Knoten hat, aber wir können es für ein viel größeres Netzwerk mit Tausenden von Knoten verallgemeinern. Auf der Abbildung stellen Doppelpfeile verbundene Peers dar, die sie selbst mit hinzufügen addPeer(). Später Node_1fügt Node_-2und Node-3als Peers hinzu, addPeer()da es nur enode://pubkey@ip:port{ Node-2und Node-3} kennt und sich mit dem Netzwerk verbindet.

Geben Sie hier die Bildbeschreibung ein

[F1] Ruft danach Node_1automatisch die verbundenen Knoten Node-2von und ab , die { und } sind, und stellt eine dynamische Verbindung zu ihnen her? und danach auch holen und 's verbundene Knoten's die sind und sich in die verbinden. Diese Operation könnte rekursiv durchgeführt werden. Wenn nein, bleibt statisch nur mit und verbunden .Node-3enode://pubkey@ip:portNode-4Node-5Node-4Node-5enode://pubkey@ip:portNode-6Node-1Node-2Node-3

[Q2] Diese ist mit der ersten Frage verbunden. Wenn Node-1die verbundenen Knoten von Node-2und nicht abgerufen werden können und nur nach einigen Stunden mit und verbunden bleiben und heruntergefahren werden. Führt es auch zu Verbindungsabbrüchen vom Netz?Node-3enode://pubkey@ip:portNode-2Node-3Node-2Node-3Node-1

Antworten (1)

Nach meinem Verständnis wird beim Hinzufügen eines neuen Knotens im Blockchain-Netzwerk zwischen den Knoten ein Mesh-Netzwerk gebildet. Dies ist die konzeptionelle Kernidee der Dezentralisierung . Wenn ein Knoten ausgefallen ist, kann das System in Betrieb bleiben, bis mindestens ein Knoten im Blockchain-Netzwerk in Betrieb ist.

Mesh-Netzwerk

Laut Geth-Dokumentation -

Wie Peers gefunden werden

Geth versucht kontinuierlich, sich mit anderen Knoten im Netzwerk zu verbinden, bis es Peers hat. Wenn Sie UPnP auf Ihrem Router aktiviert haben oder Ethereum auf einem mit dem Internet verbundenen Server ausführen, akzeptiert es auch Verbindungen von anderen Knoten.

Geth findet Peers über etwas, das als Discovery Protocol bezeichnet wird. Beim Erkennungsprotokoll klatschen Knoten miteinander, um etwas über andere Knoten im Netzwerk herauszufinden. Um zunächst loszulegen, verwendet Geth eine Reihe von Bootstrap-Knoten, deren Endpunkte im Quellcode aufgezeichnet sind.

Wenn es also 1000 Knoten gibt, wird ein neu verbundener Knoten hinzugefügt (nur ein einzelner Peer wird hinzugefügt); verbindet es sich später mit allen 1000 Knoten im Laufe der Zeit? Wenn ja wie? @asvisosila
@alper, ich habe meine Antwort aktualisiert.
Wie wäre es in Parity, macht es auch einen ähnlichen Ansatz wie geth?
Ich weiß nichts über Parität, aber ich denke, die konzeptionelle Idee wird auch in Parität gleich bleiben