Verarbeitet die EVM Transaktionen oder wird sie ausschließlich zur Ausführung von Vertragscode verwendet?
Ich frage mich, ob die EVM zur Verarbeitung von Transaktionen verwendet wird? Ich weiß, dass es verwendet wird, um den Bytecode von Verträgen auszuführen (oder zu interpretieren), aber wird es auch bei Transaktionen aufgerufen, um Gelder zwischen Konten zu transferieren oder eine Nachricht an einen Vertrag zu senden?
Wie Sie hier lesen können :
Die virtuelle Maschine von Ethereum ist die Engine, in der Transaktionscode ausgeführt wird, und ist das zentrale Unterscheidungsmerkmal zwischen Ethereum und anderen Systemen.
Ich frage mich, ob die EVM zur Verarbeitung von Transaktionen verwendet wird? Ich weiß, dass es verwendet wird, um den Bytecode von Verträgen auszuführen (oder zu interpretieren), aber wird es auch bei Transaktionen zum Transferieren von Geldern zwischen Konten aufgerufen ...
Nur wenn die Transaktion an eine Vertragsadresse gesendet wird. In diesem Fall wird der Bytecode geladen, und die EVM interpretiert die Anweisungen.
... oder eine Nachricht zu einem Vertrag senden?
Ja. Angenommen, Sie meinen einen Nachrichtenanruf , den das gelbe Papier definiert als:
Message Call: The act of passing a message from one Account to another.
In diesem Fall wird dies von der EVM unter Verwendung des CALL
Opcodes verarbeitet.
Wenn Sie diesen Code in remix einfügen , dann eine Transaktion an senden B.getA()
und sich den Debugger ansehen, können Sie dies in Aktion sehen.
pragma solidity ^0.4.10;
contract A {
uint public value = 1;
}
contract B {
A a = new A();
function getA() returns(uint){
return a.value();
}
}
Shuzheng
Maurelisch
data
Wert beziehen, der optional in einer Transaktion enthalten ist. Diese Daten werden vom Code des empfangenden Vertrags verarbeitet.ruizpauker
script
Abschnitt, auch bekannt als.code
Abschnitt. Im Fall von Ethereum wird diescode
von der ausgeführtEthereum Virtual Machine - EVM
. Diesercode
Abschnitt ist ein Bytearray, dasOP codes
sich als kompiliertes Programm aus einem möglichst mit geschriebenem Quellcode darstellen lässtSolidity
.