Ich bastle am Bitcoin-Quellcode und versuche, die genaue Funktionsweise des Peer-Discovery-Mechanismus in dem testnet
Modus zu verstehen, für den ich die folgenden Änderungen vorgenommen habe:
Die DNS-Seed-Erkennung wurde deaktiviert, um Bitcoin zum Fallback zu zwingen, um sich mit fest codierten Knoten zu verbinden.
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 getaddr
Nachrichten 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. addr
Wann 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 die fest codierten Knoten mit addnode
oder 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 connect
haben, wird es nur mit den fest codierten Knoten verbunden.
Nick Odell
bawejakunal
peers.dat
hat, wann wird er mit der Verbindung zu diesen Knoten beginnen, da er in meinem Fall gerade nichts mit diesen Knoten zu tun scheint.