Здравствуйте, сколько стоит курс Работа с Ethereum? |
Знакомство с Remix - web-среда Solidity IDE. Понимание основ среды Ethereum
Работа с контрактом после его размещения в блокчейне
В этой лекции поговорим о том, как взаимодействовать с контрактом на базе браузера Solidity. В контракт были внесены изменения.
В контракт добавлена числовая переменная myNumber, и назначил ей в конструкторе значение "три". Поэтому при создании контракта число myNumber будет равно трем. Кроме этого, добавлены еще две функции. Первая - это getNumber, возвращающая значение myNumber и заданная как постоянная функция. Вторая - это setNumber, позволяющая задавать значение myNumber в диапазоне uint256, то есть до примерно 1,16 ? 1077.
Щелчок по кнопке Create запускает эмуляцию контракта прямо в браузере Solidity. Сразу видно, что заданные функции, getNumber и getCreator, возвращают свои начальные значения, и на эти вычисления эфир не расходуется. Эти функции заданы как постоянные, а за загрузку постоянной информации не нужно ничего платить. Эфир нужно тратить только в тех случаях, когда вносят изменения в данные, хранящиеся в блокчейне. Вы запускаете нужный код с помощью транзакции и уплачиваете определенную сумму в эфире за обработку и реализацию транзакции.
Посмотрим, что произойдет, если изменить число на пять. Видно, что при этом создалась транзакция на изменение данных в блокчейне, за что пришлось заплатить немного газа. А новое значение переменной - пять. Блокчейн работает как автомат состояний: когда вы меняете какую-либо величину, за это изменение нужно заплатить некоторое количество газа.
Давайте загрузим контракты в реальный блокчейн. Для этого нужно скопировать контракт, открыть кошелек, открыть раздел Contracts и щелкнуть по кнопке Deploy New Contract.
Затем надо выбрать счет, вставить исходный код.
Выбрать имя MyContract и щелкнуть по кнопке Deploy. После ввода пароля необходимо дождаться размещения контракта в блокчейне.
Можно вернуться в раздел Contracts и найти только что созданный контракт.
Когда вы добавляете новый контракт, все постоянные функции будут видны в левой части вашего кошелька, в разделе Read From Contract.
Для записи данных в контракт нужно выбрать функцию и ввести необходимые параметры, а затем отправить ее на выполнение, используя счет с достаточным количеством эфира.
Обратите внимание, что для внесения изменений в контракт эфир не нужно кому-либо отправлять, он используется только для оплаты обсчета транзакции. Разумеется, если сам контракт не предполагает отправку эфира. После ввода пароля можно увидеть, что примерная стоимость обсчета контракта составит двадцать шесть тысяч шестьсот семь единиц газа, а максимальное количество выделяемого для обработки транзакции газа - на сто тысяч единиц газа больше. Неизрасходованные остатки газа будут возвращены на ваш счет.
После обработки транзакции функция getNumber вернет значение "пять". Выполнение контракта подтверждено двумя разными узлами. Вернемся в раздел Contracts и откроем контракт MyContract. Видно, что в разделе Read From Contract значение функции getNumber равно пяти.
Теперь уничтожим контракт с помощью функции kill