Ich frage nicht, ob alle Knoten jede Transaktion ausführen. Ich bitte um eine grobe zeitliche Abfolge der Ereignisse. Zum Beispiel im Fall eines Double Spend-Versuchs, und der Double Spender konspiriert mit dem Miner, der den nächsten Block hinzufügt. An welchem Punkt überprüft ein zufälliger Knoten im Netzwerk, der am Mining beteiligt ist, dass dies falsch war, und kennzeichnet das Problem?
- Ist es nur der nächste Miner, der einen Block hinzufügen darf, der dieses Problem erkennt?
- Verifiziert / führt jeder Knoten die Transaktion nur aus, wenn er das nächste Mal am Mining teilnimmt, oder nur, wenn er den PoW löst und einen neuen Block hinzufügen kann?
- Das nächste Mal, wenn sie online sind?
- Gibt es einen Auslöser, sodass ein vollständiger Knoten, der möglicherweise inaktiv ist, den Vertragscode ausführen und verifizieren muss?
Was ist, wenn die nächsten N Miner ebenfalls konspirieren? Ist nur ein Miner erforderlich, um die Transaktion als falsch oder N+1 zu kennzeichnen?
Offensichtlich können nicht alle Nodes diese Transaktion ausführen, bevor ein weiterer Block erstellt wird, also hoffe ich, dass es eine grobe Zeitachse der Ereignisse gibt.
Wenn ein Miner das Proof-of-Work-Puzzle für den Block löst, den er/sie abbaut, fügt er es in den Header des Blocks ein und gibt es an die anderen Knoten weiter, die er kennt. Sie könnten andere Bergleute oder andere Nicht-Bergbau-Vollknoten sein.
Der neue Block wird nun propagiert. Die Knoten, die den neuen Block erhalten, müssen ihn validieren.
Non-Mining Full Nodes werden Folgendes tun:
Mining-Knoten tun dasselbe, aber in einer etwas anderen Reihenfolge, sodass sie beim nächsten Block schneller mit dem Mining beginnen können:
Das Überprüfen der Zustandsübergänge in einem vollen 8-Mgas-Block dauert auf einem anständigen Computer in der Größenordnung von 100 bis 200 ms.
Zu deinen konkreten Fragen.
Ich frage nicht, ob alle Knoten jede Transaktion ausführen.
Sie tun dies, um sicherzustellen, dass ihr Zustand intern konsistent ist. (Es gibt tatsächlich spieltheoretische Argumente, die dagegen sprechen. Ich habe gehört, dass einige Miner nicht wirklich prüfen, ob der Inhalt des Blocks gültig ist, und nur davon ausgehen, dass ihnen dies einen Vorsprung beim Mining des nächsten Blocks verschaffen soll.)
An welchem Punkt überprüft ein zufälliger Knoten im Netzwerk, der am Mining beteiligt ist, dass dies falsch war, und kennzeichnet das Problem?
Es sollte von der ersten Gruppe von Peers des Miners gekennzeichnet werden, die die Zustandsübergänge validieren sollten.
Ist es nur der nächste Miner, der einen Block hinzufügen darf, der dieses Problem erkennt?
Nein, wie oben.
Verifiziert / führt jeder Knoten die Transaktion nur aus, wenn er das nächste Mal am Mining teilnimmt, oder nur, wenn er den PoW löst und einen neuen Block hinzufügen kann?
Nein, wenn sie einen neu propagierten Block erhalten.
Das nächste Mal, wenn sie online sind?
Wenn sie offline gehen, wenn sie wieder online gehen und bevor sie wieder mit dem Mining beginnen, müssen sie sich wieder mit dem Kettenkopf synchronisieren. Die Validierung ist Teil dieser Synchronisierung.
Gibt es einen Auslöser, sodass ein vollständiger Knoten, der möglicherweise inaktiv ist, den Vertragscode ausführen und verifizieren muss?
Der Auslöser ist, dass der neue Block darauf geschoben wird.
Offensichtlich können nicht alle Nodes diese Transaktion ausführen, bevor ein weiterer Block erstellt wird, also hoffe ich, dass es eine grobe Zeitachse der Ereignisse gibt.
Theoretisch tun sie das, sonst wissen sie nicht, dass sie auf einem gültigen Zustand aufbauen.
Die Transaktionen werden nur während des Minings überprüft, also von den Nodes, die minen. Alle anderen Knoten prüfen, wenn sie den Block erhalten, ob die Lösung entsprechend der Schwierigkeit für den Block richtig ist. Sie verifizieren also nur die vom Miner bereitgestellte Lösung. Wenn es richtig ist, wird es akzeptiert, wenn nicht, wird es abgelehnt.
Mehr zur Blockvalidität finden Sie im Yellow Paper, Teil 4.4.2: http://yellowpaper.io/
Bezüglich der Hinrichtungsreihenfolge bin ich mir überhaupt nicht sicher, da ich lieber nichts sage. Sie sollten sich dazu auch das Yellow Paper ansehen: http://yellowpaper.io/
Ismael
Kevin Larson
Ismael
Ismael
Kevin Larson
Ismael
Ismael
Rob Hitchens