Где узел Ethereum хранит свой вариант? [дубликат]

Всем известно, что после развертывания смарт-контракта в сети Ethereum он не будет изменен. Но как насчет значения варианта контакта? Скажем, смарт-контракт выглядит так:

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

Итак, мой вопрос: где вариант var1 хранится в Ethereum? Является ли это частью байт-кода смарт-контракта? (Я думаю, он хранится таким образом). Если это так, его значение существует в памяти EVM, когда вы запускаете контракт, и каждый раз, когда вы снова запускаете смарт-контракт, значение var1 инициализируется как 10. Если нет, то где именно он хранится? И могу ли я увидеть значение var1, измененное предыдущей транзакцией, вызвавшей функцию changeVar1()?

Ответы (1)

Система хранения узлов Ethereum зависит от того, какое программное обеспечение узла вы используете. Это деталь реализации.

Например, Parity использует RocksDB , и вы можете найти эти файлы на своем диске при запуске узла Parity.

Кроме того, вы можете запустить свой узел в режиме полного архива , и он хранит все исторические состояния на диске. На данный момент это около 2 ТБ.

Хорошо, что вы подразумеваете под "узловым программным обеспечением"?
Переходите на Ethereum, Parity или аналогичный. Что бы вы ни запускали для синхронизации с одноранговой сетью Ethereum.
Что ж, запустите Go Ethereum. Так ты имеешь представление об этом?
Да, он хранит данные на вашем жестком диске с помощью LevelDB (думаю, не уверен на 100%).