Auf welchem ​​Node Smart Contract ausgeführt wird

Ich habe eine allgemeine Frage in meinem Kopf, bitte korrigieren Sie mich, wenn ich falsch denke.

Angenommen, ich setze den Smart Contract auf der Ethereum-Blockchain mit einer Funktionalität ein, um einige Token zu einem bestimmten Zeitstempel zu bezahlen. Dann wird auf welchem ​​​​EVM des Knotens dieser intelligente Vertrag ausgeführt, wie er entschieden wird? und gleichzeitig ist mein Node nicht mehr mit dem Netzwerk verbunden. Wird dieser Knoten vom Netzwerk zufällig ausgewählt oder gibt es einen anderen Algorithmus oder ein anderes Paradigma für diesen Prozess?

Danke

Antworten (1)

Nachdem Sie Ihre Transaktion unterzeichnet haben, wird sie an das Ethereum-Netzwerk gesendet. Selbst wenn Sie offline gehen, wird die Transaktion immer noch auf verschiedenen Knoten herumgereicht. Mining-Knoten können Ihre Transaktion in einen Block aufnehmen; Jeder Knoten, der Ihre Transaktion in den Block aufnehmen möchte, muss sie ausführen.

Andernfalls wird Ihre Transaktion auf allen Knoten ausgeführt, nachdem sie von einem Miner in einen Block aufgenommen wurde. Der Grund, warum alle Knoten die Transaktion ausführen, auch nachdem sie in einen Block aufgenommen wurde, ist, dass sie den Blockchain-Status aktualisieren können. Außerdem verhindert es, dass der Miner, der die Transaktion durchgeführt hat, betrügt (z. B. indem er behauptet, dass die Transaktion doppelt so viel Gas verbraucht hat wie sie tatsächlich verbraucht hat, und sich dann die höhere Transaktionsgebühr bezahlt).

Ich nehme an, dies ist nicht die Antwort auf meine Frage. Ich möchte nach der Vertragsbereitstellung verstehen, dass eine Transaktion, die vom Vertrag selbst generiert wurde, nicht durch einen externen Aufruf, dann benötigte die Generierung der Transaktion eine Umgebung für die Ausführung, also wo wird diese Umgebung oder EVM-Instanz sein
Ein Vertrag kann sich später nicht selbst aufwecken; sie muss als Teil einer neuen Transaktion oder eines Nachrichtenaufrufs ausgeführt werden. Ein Nachrichtenaufruf ist im Grunde eine Transaktion, die von einem anderen Vertrag initiiert wurde – aber dieser Vertrag muss zumindest indirekt durch eine neue Transaktion im aktuellen Block gestartet worden sein.