Wo speichert der Ethereum-Knoten seine Variante? [Duplikat]

Allen ist bekannt, dass der Smart Contract, sobald er im Ethereum-Netzwerk bereitgestellt wird, nicht mehr geändert wird. Aber was ist mit dem Wert der Variante eines Kontakts? Angenommen, ein intelligenter Vertrag sieht so aus:

...
contract Hello{
      uint256 var1 = 10;
      function changeVar1() public{
             var1 = 100;
      }
}
...

Meine Frage ist also, wo ist die Variante var1 in Ethereum gespeichert? Ist es ein Teil-Bytecode des Smart Contract? (Ich denke, es wird auf diese Weise gespeichert) Wenn ja, ist sein Wert im Speicher von EVM vorhanden, wenn Sie den Vertrag ausführen, und jedes Mal, wenn Sie den Smart Contract erneut ausführen, wird der Wert von var1 als initialisiert 10. Wenn nicht, wo wird es genau gespeichert? Und kann ich den Wert von var1 sehen, der durch die vorherige Transaktion geändert wurde, die die Funktion changeVar1() aufgerufen hat?

Antworten (1)

Das Node-Speichersystem von Ethereum hängt davon ab, welche Node-Software Sie ausführen. Es ist ein Implementierungsdetail.

Beispielsweise verwendet Parity RocksDB und Sie können diese Dateien auf Ihrer Festplatte finden, wenn Sie einen Parity-Knoten ausführen.

Darüber hinaus können Sie Ihren Knoten im vollständigen Archivmodus ausführen und er speichert alle historischen Zustände auf der Festplatte. Derzeit sind es etwa 2 TB.

Nun, was meinst du mit "Knotensoftware"?
Gehen Sie zu Ethereum, Parity oder ähnlichem. Was auch immer Sie ausführen, um es mit dem Peer-to-Peer-Ethereum-Netzwerk zu synchronisieren.
Führen Sie das Go Ethereum aus. Also hast du eine Ahnung davon?
Ja, es speichert Daten auf Ihrer Festplatte mit LevelDB (schätzen, nicht 100% sicher).