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

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

Управление счетами и добыча эфира (майнинг)

Открываем кошелек Mist. Добавить в него несколько счетов возможно с помощью кнопки Add Account.


Как сделать резервную копию счетов? В зависимости от того, с какой операционной системой вы работаете, Mist и другие клиенты для платформы Ethereum будут сохранять файлы со счетами в различных каталогах. В меню Mist нужно последовательно щелкнуть по пунктам Accounts, затем Backup и затем Accounts еще раз. Откроется каталог Keystore, в котором хранятся ключи к счетам Ethereum.


Эти ключи можно скопировать на USB-носитель или отправить в облачное хранилище. Крайне важно убедиться, что они хранятся в надежном месте. Их потеря по любой причине приводит к абсолютно безвозвратной недоступности счетов - без этих ключей ни вы, ни кто-либо другой не сможет получить доступ к счетам.

Загружаем Geth, с помощью которого продемонстрируем, как можно начать майнинг эфира. В двух разных окнах открываем две консоли для работы с Geth. В правом окне - командная строка для Geth.


Если вы работаете с Linux, можно использовать привычную вам оболочку. При работе с Windows подходит стандартная командная строка. Веб-кошелек закрываем и запускаем сервис Geth.


Во втором окне подключаемся к запущенному процессу Geth.


Geth открывает доступ ко всем счетам и операциям с ними так же, как и Mist, но посредством командной строки.


Все счета хранятся в едином центральном каталоге, и все клиенты в среде Ethereum - будь то Mist, Geth или CPP-Ethereum - подключаются к нему. На текущий момент Geth поддерживает майнинг только с помощью центрального процессора, что, возможно, и не очень быстро, но вполне достаточно для работы в тестовой среде или частной сети. Чтобы запустить процесс майнинга из консоли, достаточно задать команду miner.start. В качестве параметра можно задать число потоков, в которых будет осуществляться обсчет операций в блокчейне, например, два. В любой момент майнинг можно остановить.


Отличное вводное руководство в майнинг можно найти на wiki-пространстве Github Ethereum по ссылке http://github.com/ethereum/wiki/wiki/miningintroduction. Помимо общей информации, там приведены разъяснения используемых алгоритмов майнинга и даны расшифровки терминологии. Чтобы узнать больше о майнинге с помощью графических процессоров, можно посетить репозиторий GoEthereum в разделе wiki/Mining. В нижней части страницы можно найти целый раздел на эту тему, где перечислены инструменты, настройки и инструкции. В рамках этого курса сконцентрируемся на написании контрактов и размещении их в блокчейне.

Фазы разработки контрактов

В этой лекции разберем фазы процесса разработки распределенных приложений. Первая фаза - написание кода. Это можно делать в привычной среде разработки, например, в Ethereum Studio или Mix, или даже в блокноте. После разработки целесообразно провести ряд тестов. Для этого хорошо подходит Mocha ("Мокка" Блочное тестирование удобно проводить в среде Truffle, да и в Ethereum Studio есть стандартный проект с уже встроенными тестами. Конечно, не обойтись и без ручных тестов, которые можно проводить, к примеру, в браузере Solidity, или в частном блокчейне. Затем проводятся окончательные проверки. Необходимо убедиться, что ваше распределенное приложение работает в соответствии со спецификацией. Это можно сделать в тестовой среде без расходования эфира.

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

Разберемся, как работает коммуникация. Необходимо, чтобы браузер мог взаимодействовать с контрактом. Однако напрямую они общаться не могут. Обычно браузер обрабатывает код HTML, который вызывает код JavaScript, который, в свою очередь, связывается с контрактом посредством узла сети Ethereum, например, запущенной службой Geth или CPP-Ethereum. Узел сети Ethereum обеспечивает доступ в блокчейн, и, таким образом, обеспечивает связь блокчейна и вашего контракта.


Контракт представляет собой некоторое подобие базы данных со встроенной логикой. Итак, для работы распределенного приложения потребуются браузер, традиционный сервер для обработки HTML-кода и кода JavaScript и узел Ethereum с интерфейсом HTTP RPC для доступа к блокчейну.

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

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