Wie lange dauert es, einen vollständigen Block zu validieren?

Mich interessiert, wie lange es dauert, einen Bitcoin-Block auf einem durchschnittlichen Heim-PC zu validieren. Eine genaue Zahl interessiert mich weniger. Ich bin mir bewusst, dass es zwischen verschiedenen Maschinen unterschiedlich sein kann. Mich interessiert eher eine Schätzung. Frühere Antworten lieferten keine Zahl oder auch nur eine grobe Berechnung.

Antworten (1)

Ihre Frage bietet eigentlich nicht genug Kontext, selbst wenn Sie sich nicht darum kümmern, welche Maschine speziell.

Meinen Sie Cold-Cache während des anfänglichen Block-Downloads oder meinen Sie an der Spitze der Kette auf einem laufenden Knoten? Der Unterschied in diesem Punkt beträgt wahrscheinlich zwei Größenordnungen in der Geschwindigkeit.

Normalerweise wird beim Trinkgeld fast überhaupt keine Transaktionsvalidierung durchgeführt, mit Ausnahme der Double-Spend-Konsistenz zum Zeitpunkt der Annahme eines Blocks: Alle Transaktionen wurden bereits empfangen und validiert.

Möchten Sie Zeit für die Verarbeitung nur eines einzelnen Blocks ohne das notwendige Datenbankschreiben, das normalerweise über viele Blöcke verteilt ist? Der Unterschied hier ist vielleicht ein Faktor von zwei in der Geschwindigkeit im ungecachten Fall, viel mehr im gecachten Fall.

Sie können Bitcoin Core mit -debug=bench ausführen, damit es detaillierte Zeitangaben für die verschiedenen Teile der Validierung protokolliert, um die Validierung auf Ihrem eigenen System anzuzeigen.

Zahlen in der Größenordnung liegen in der Größenordnung von einigen Millisekunden für den üblichen vollständig gecachten Fall an der Spitze bis zu einigen Sekunden für Cold-Caches und Flushing. Möglicherweise Minuten, wenn der Block gegensätzlich konstruiert wurde.

Vielen Dank für die Antwort, ich werde genauer sein: Ich führe eine grobe Simulation durch, die die Zeit berechnet, die zum Propagieren eines Blocks benötigt wird. Der Einfachheit halber möchte ich alle Knoten identisch machen. Das bedeutet gleiche Bandbreite und gleiche Ausbreitungsverzögerung zwischen jeweils zwei Knoten. Ich möchte auch eine grobe Schätzung für die Zeit verwenden, die zum Validieren eines Blocks benötigt wird. Ich weiß, dass einige der Transaktionen bereits genehmigt wurden, andere jedoch nicht. Deshalb interessiert mich die Schätzung, die berücksichtigt: durchschnittliche neue Transaktionen pro Block, Rechenleistung usw.
In Bitcoin-Blöcken werden die meiste Zeit nicht validiert, bevor sie verbreitet werden. (Mit BIP152 werden sie vor der Validierung weitergegeben, wenn alle Daten im Voraus bekannt sind, mit FIBER werden sie immer vor der Validierung weitergegeben.) In einem aktuellen Bereich von 288 Blöcken sehe ich 11 Blöcke, in denen es 1 oder mehr unbekannte Transaktionen mit gab durchschnittliche Rate von 0,059 unbekannten Transaktionen pro Block. Abgesehen davon nutzt das Bitcoin-Netzwerk ungleiche Verzögerungen aus, um eine schnellere Ausbreitung zu erreichen.