Опубликован: 28.01.2018 | Доступ: свободный | Студентов: 924 / 142 | Длительность: 06:54:00
Лекция 3:

Знакомство с Remix - web-среда Solidity IDE. Понимание основ среды Ethereum

Как создавать, обрабатывать и размещать контракты

Откроем браузер Solidity, в котором можно эмулировать блокчейн. Загрузить Solidity можно по ссылке http://ethereum.github.io/browser-solidity.


Слева отображается ваш код. Справа показаны его интерпретации в байткоде, интерфейсном коде и коде Web3. Эти интерпретации пригодятся в следующих лекциях. Браузер Solidity удобен для работы и тестирования контрактов. Можно быстро создавать контракты и сразу выполнять с ними нужные операции. Стоит помнить, что это просто симуляция и контракты не обрабатываются в настоящем блокчейне.

Для размещения контракта в блокчейне и предоставления доступа к нему другим воспользуемся кошельком Mist.


Для создания нового контракта откройте раздел Contracts и щелкните по кнопке Deploy a New Contract, затем выберите счет с достаточным количеством средств. Для создания контракта не потребуется слишком много эфира: от 0,5 до 1 единицы.


Выбираем один из счетов, затем копируем и вставляем код контракта из Solidity в раздел для исходного кода.




Контракт начнёт компилироваться в фоновом режиме. Он отображается в списке контрактов на размещение в блокчейне как My Contract. Выберем его.


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


Откроется всплывающее окно для ввода пароля, заданного при создании счета. После ввода пароля щелкните по кнопке Send Transaction. Через некоторое время размещение контракта в блокчейне будет подтверждено.


Размещенный контракт можно найти в кошельке Mist, в разделе с последними транзакциями Latest Transactions.


Щелкнув по контракту, можно увидеть дополнительную информацию.


Для того, чтобы контракт был взят в обработку и получил собственный адрес в блокчейне, может потребоваться некоторое время - это произойдет, как только кто-нибудь из пользователей блокчейна завершит обсчет контракта. Еще больше информации можно получить, щелкнув по идентификатору транзакции. Она отобразится в веб-приложении Etherscan.


Теперь вернемся в кошелек Mist и посмотрим, как можно взаимодействовать с контрактом. Откроем раздел Contracts. Выберем контракт, который только что разместили в блокчейне (адрес контракта расположен под его названием).


При щелчке по кнопке Show Interface отображается интерфейсный код контракта.


Эти два компонента необходимы, если возникнет желание поделиться своим контрактом с другими пользователями. Если прокрутить экран вниз, можно найти дополнительные возможности взаимодействия с контрактом.


Например, в число постоянных функций входит чтение содержимого контракта. Это можно сделать без дополнительной оплаты эфира. Однако для внесения изменений в блокчейн потребуется создавать новую транзакцию. Давайте выполним процедуру по удалению контракта из блокчейна, выбрав действие Kill. Выберем тот же счет, что мы использовали для создания контракта, и выполним транзакцию. Снова потребуется ввести пароль, после чего можно щелкнуть по кнопке Send Transaction.


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

Теперь рассмотрим, как поделиться своим контрактом с другими. Для этого нужно передать другому пользователю адрес контракта в блокчейне и интерфейсный код JSON.


Если кто-то делится контрактом с нами, необходимо пойти в раздел Contracts и щелкнуть по кнопке Watch a contract для просмотра контракта. Присвоив контракту имя, вставляем адрес контракта в блокчейне и интерфейсный код. После этого новый контракт появится в списке рядом с существующими.

Алексей Миронов
Алексей Миронов

Здравствуйте, сколько стоит курс Работа с Ethereum?