Wie funktioniert die Peer-Erkennung nach dem Verbinden mit fest codierten Knoten?

Ich bastle am Bitcoin-Quellcode und versuche, die genaue Funktionsweise des Peer-Discovery-Mechanismus in dem testnetModus zu verstehen, für den ich die folgenden Änderungen vorgenommen habe:

  1. Die DNS-Seed-Erkennung wurde deaktiviert, um Bitcoin zum Fallback zu zwingen, um sich mit fest codierten Knoten zu verbinden.

  2. Ich habe die fest codierten Standardknoten in meine bekannten 4 Adressen geändert, sagen wir A, B, C und D, von denen ich sicher bin, dass sie immer online sind.

Wenn ich jetzt den Bitcoin-Client ausführe (nennen Sie ihn E), stellt er eine Verbindung zu einem von A, B, C oder D her und führt dieselbe modifizierte Version von Bitcoin aus. Es erhält die Peer-Adressen von dem fest codierten Knoten, mit dem es sich zuerst verbindet, indem es getaddrNachrichten austauscht addr, aber ich bin mir nicht sicher, wie es danach weitergeht. Ich habe folgende Anfragen:

a. Wenn ein Knoten zurückfällt, um sich mit fest codierten Knoten zu verbinden, soll er sich dann nur mit einem der fest codierten Knoten verbinden, wie es in meinem Fall der Fall ist, oder kann er sich mit mehreren fest codierten Knoten verbinden?

b. addrWann wird der Knoten E beginnen, sich mit diesen Peers zu verbinden, nachdem er die Peer-Adresse über die Nachricht erhalten hat?

Bitte verweisen Sie mich nach Möglichkeit auf die relevanten Codedateien/Abschnitte. Vielen Dank

Haben Sie bitcoin.stackexchange.com/questions/3536/… gelesen ? Suchen Sie nach genaueren Informationen darüber, was nach dem Verbinden mit einem fest codierten Knoten passiert?
@NickODell ja, das habe ich bereits auf der Bitcoin-Wiki-Seite gelesen. Ich suche nach 2 bestimmten Dingen: a) Nehmen wir an, es gibt 4 fest codierte Knoten, die online sind, dann verbindet sich mein Knoten E mit genau einem von ihnen. Warum verbindet es sich nicht mit mehr als 1 fest codierten Knoten? Ist das das richtige beabsichtigte Verhalten von Bitcoin? b) Nachdem der fest codierte Knoten Knoten E über das Vorhandensein anderer Knoten im Netzwerk informiert und Knoten E dies in gespeichert peers.dathat, wann wird er mit der Verbindung zu diesen Knoten beginnen, da er in meinem Fall gerade nichts mit diesen Knoten zu tun scheint.

Antworten (1)

Haben Sie die fest codierten Knoten mit addnodeoder mit hinzugefügt connect?

addnode=<ip>Fügen Sie einen Knoten hinzu, zu dem eine Verbindung hergestellt werden soll, und versuchen Sie, die Verbindung offen zu halten
connect=<ip>. Verbinden Sie sich nur mit den angegebenen Knoten.

Wenn Sie also verwendet connecthaben, wird es nur mit den fest codierten Knoten verbunden.