Was wird eigentlich gesendet, wenn eine Transaktion an das Netzwerk gesendet wird?

Was wird gesendet, wenn eine Transaktion an das Netzwerk gesendet wird? Ist es ein Hasch? Wenn ja, wird es der Hash von: vorheriger Transaktion + öffentlicher Schlüssel des Empfängers sein?

Antworten (1)

  • Der Client erstellt eine neue Transaktion und fügt sie seinem Speicherpool hinzu
  • Der Client sendet einen invFrame, der anzeigt, dass er etwas in seinem Speicherpool hat, indem er den Hash der Transaktion an einen oder mehrere verbundene Peers weitergibt
  • Peer empfängt invFrame, überprüft seinen eigenen Speicherpool, er ist nicht drin, also sendet er einen getdataFrame zurück
  • Der Client empfängt einen getdataFrame für die gerade erstellte Transaktion und sendet daher eine txmit der gesamten Transaktion
  • Der Peer empfängt die tx, hasht sie und fügt sie in den Speicherpool ein
  • Peer hat jetzt etwas Neues im Speicherpool und sendet eine invan alle verbundenen Peers
  • Der Client erhält einen invFrame, bemerkt, dass er sich bereits im Speicherpool befindet, und ignoriert ihn
  • Ein anderer Client erhält den invFrame ebenfalls getdata, speichert die tx, sendet inv, und wiederholt das, bis das gesamte Netzwerk die Transaktion hat.

Verweise :

Korrigieren Sie mich, wenn ich falsch liege, aber sendet Bitcoin die Transaktion nicht nur an einen Peer, wenn die Transaktion von ihm stammt?
@NickODell Vielleicht, aber das hängt mit der Implementierung zusammen und ist keine Netzwerkregel.
Danke Tom, sehr klare Erklärung. Allerdings habe ich noch eine Frage. Basierend auf dem Satoshi-Papier bitcoin.org/bitcoin.pdf besteht der Hash auch aus dem öffentlichen Schlüssel des Empfängers. Ich nehme an, dass der öffentliche Schlüssel hinzugefügt wird, um unterschiedliche Hashes zu haben?
(Haftungsausschluss: Ich habe die Zeitung nie gelesen, ich habe nur einen Client gebaut.) Der Hash einer Transaktion ist einfach die gesamte Transaktion ( tx) gehasht (im Gegensatz zu Blöcken, bei denen nur ihre Header gehasht werden). Dazu gehören alle Ein- und Ausgänge.
Wie schnell oder wie lange dauert es, die Informationen an alle Peers zu senden? Ich meine, wenn ich schürfe und jemand bereits einen neuen Block gefunden hat, wie lange würde es dauern, bis ich die Informationen erhalte und wieder mit dem Schürfen eines neuen Blocks beginne?
Das Erreichen aller Peers kann lange dauern (vielleicht sogar bis zu einer Stunde), da es immer ein paar Kanten im Netzwerk gibt, wo es viel länger dauert. Für die meisten Knoten ist es jedoch eine Frage von Sekunden bis vielleicht zwei Minuten.