Где хранится байт-код - PullRequest
       22

Где хранится байт-код

0 голосов
/ 17 сентября 2018

Вопрос очень прост.

Используя в качестве ссылки следующее изображение:

enter image description here

Как я понимаю, блокчейн Ethereumхранит только мысли, которые находятся внутри блоков (PREVHASH, STATE_ROOT, TIMSTAMP, NUMBER) и для каждой учетной записи (NONCE, BALANCE, CODEHASH, STORAGE_ROOT).

Итак, где находится код (в данном случае байт-код)смарт-контракта хранится?

1 Ответ

0 голосов
/ 19 сентября 2018

Контракты действуют на блокчейне в двоичном формате, специфичном для Ethereum (байт-код EVM), который исполняется виртуальной машиной Ethereum (EVM).

Скомпилированный код EVM отправляется в блокчейн с транзакцией создания контракта, в то время как дополнительные метаданные, созданные в рамках составления смарт-контракта, в идеале будут жить в децентрализованном облаке в качестве публично проверяемых метаданных, дополняющих код в блокчейне..

В процессе развертывания смарт-контракта мы фактически отправляем транзакцию на пустой адрес с кодом EVM, сгенерированным как часть компиляции смарт-контракта, в качестве данных транзакции.

Через некоторое время ваша транзакция должна появиться включенной в блок, подтверждающий, что вызванное ею состояние является консенсусом.Ваш контракт теперь живет в блокчейне по адресу, созданному для смарт-контракта.

С адресами контракта связан байт-код, и за контрактом никто не контролирует внешние ключи.Контракты хранят журнал CRAB вместо базы данных CRUD (создание и чтение, добавление, запись, создание, чтение, обновление, удаление, удаление).

Поскольку у нас есть код смарт-контракта, часть данных транзакции, которая создала смарт-контракт, а также у нас есть новый адрес для смарт-контракта, блокчейн Ethereum на самом деле может определить фактический байт-код, который должен бытьвыполняется путем поиска первой транзакции, выход которой указывает на адрес контракта.

...