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

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

Установка частного блокчейна

В этой лекции узнаем, как создать собственную частную сеть. На wiki-страницах Go Ethereum можно найти раздел Init, описывающий одноименную команду.


Эта команда позволяет задать в Geth каталог с данными и выбрать JSON-файл для генерации блокчейна, который - необходим для создания первого блока. Он состоит из нескольких конфигурационных параметров. Среда Ethereum предоставляет массу возможностей по созданию собственной частной сети. Единственный блок, к которому нужен особый подход при инициализации - это самый первый блок. В нашем случае это блок под номером ноль. Помимо собственно изначального блока, можно задать несколько внутренних конфигурационных параметров, например, напрямую назначить каким-то счетам определенное количество эфира..

Действуем по документации. Можно задать каталог с данными, хотя это и не обязательно, затем необходимо ввести команду init, а затем указать имя файла JSON. Если не задать каталог с данными, то изначальный блок будет записан в каталог по умолчанию. Если вы уже загрузили публичный блокчейн Ethereum, что на сегодняшний день составляет около пятнадцати гигабайт данных, и затем отдали команду на создание частного блокчейна с новым изначальным блоком, Geth произведет запись в каталог по умолчанию и тем самым сделает бесполезным весь объем загруженных данных. Они просто уничтожатся. Поэтому во всех случаях перед созданием частной сети необходимо сообщать Geth новый каталог с данными. Сейчас разберем на примере.

Откроем консоль. Наберем команду geth-datadir, а затем укажем путь к предварительно созданному каталогу. Затем init и customgenesis.json.


Автоматически выделилось пространство в шестнадцать мегабайт для кэш-памяти и шестнадцать логических номеров для файлов, расположенных в каталоге c:\eth_test\chaindata. Если перейти в этот каталог, можно увидеть все созданные файлы своими глазами.


Запустим Geth.


Работа с Geth в условиях частной сети не слишком отличается от работы с публичным блокчейном. Пожалуй, Geth не будет подключаться к другим узлам сети, это запрещено алгоритмами консенсуса Ethereum. Открываем кошелек, который подключен к частной сети.


В параллельном окне можно открыть Geth еще раз и запустить майнер. Видим, что счетов нет


Тогда создадим счет и зададим ему пароль test123. Проверим основной криптовалютный счет.


Посмотрим, как майнится эфир.


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

Задание №1 - Понимание основ среды Ethereum перед тем, как начать работу

Публичный блокчейн

В этом задании потребуется установить кошелек Mist и среду Go-Ethereum. Для работы с публичным блокчейном Mist должен его загрузить. Кроме того, потребуется около 20 гигабайт дискового пространства.

Загрузить кошелек Mist можно по этой ссылке: https://github.com/ethereum/mist/releases

Убедитесь, что у вас есть свободное дисковое пространство и достаточная пропускная способность сети. Рекомендуется выполнять загрузку в ночное время.

Частный блокчейн

Если ваша основная цель - разработка распределенных приложений, а размещать их в блокчейне вы планируете позднее (например, с помощью альтернативного кошелька Jaxx), будет полезным научиться работать с частным блокчейном.

Для запуска частной сети загрузите клиент go-ethereum:https://github.com/ethereum/go-ethereum/releases

Загрузите JSON-файл для создания изначального блока: https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options

Убедитесь, что кошелек Mist не запущен в фоновом режиме.

Создайте новый каталог и запустите команду Geth со следующими параметрами:

geth --datadir <some/location/where/to/create/chain> init genesis.json

Задание выполнено.

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

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