Освоение блокчейна.
Copyright © 2017 Packt Publishing
![]() |
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: март 2017
Ссылка на продукт: 1090317
Все права защищены. Никакая часть этой книги не может быть воспроизведена, сохранена в поисковой системе или передана в любой форме или любыми средствами без предварительного письменного разрешения издателя, за исключением случаев кратких цитат, встроенных в критические статьи и обзоры.
При подготовке этой книги были предприняты все усилия чтобы гарантировать точность представленной информации. Тем не менее, информация, содержащаяся в этой книге, продаётся без гарантии в явном или неявном виде. Ни авторы, ни Packt Publishing, ни их дилеры и дистрибьюторы не будут нести ответственность за любые убытки, вызванные или предположительно вызванные прямо или косвенно этой книгой.
Packt Publishing пыталась предоставить информацию о товарных знаках обо всех компаниях и продуктов, упомянутых в данной книге для надлежащего использования капиталов. Тем не менее, Packt Publishing не может гарантировать точность этой информации.
Опубликовано Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK
ISBN 978-1-78712-544-5
2018-01-25
- Автор
- Имран Башир
- Рецензент
- Дэниэл Крафт
- Редактор выпуска
- Вина Паджейр
- Редактор
- Аджит Минон
- Редакторы разработки содержания
- Сумит Савант
- Амрайта Норонха
- Технический редактор
- Найлиш Сэйвакханде
- Литературный редактор
- Лакшми Сабреймейньян
- Координатор проекта
- Швита Х. Бирваткар
- Корректор
- Safis Editing
- Составитель указателя
- Прейтик Шайродкар
- Графика
- Таня Дутта
- Координатор производства
- Шарадха Фейлбхай
Имран Башир
- Предисловие
- Глава 1. Азы блокчейн
- Распределённые системы
- История блокчейна
- Введение в блокчейн
- Виды блокчейна
- Теорема CAP и блокчейн
- Преимущества и ограничения блокчейна
- Выводы
- Глава 2. Децентрализация
- Децентрализация с применением блокчейна
- Методы децентрализации
- Маршруты децентрализации
- Децентрализация блокчена и полной экосистемы
- Адаптивный контракт
- Децентрализованные организации
- Децентрализованные автономные организации
- Децентрализованные автономные корпорации
- Децентрализованные автономные сообщества
- Децентрализованные приложения
- Платформы для децентрализации
- Выводы
- Глава 3. Основы криптографии и техники
- Введение
- Примитивы криптографии
- Несимметричная криптография
- Общедоступные и частные ключи
- RSA
- Проблема дискретного логарифма
- Примитивы криптографии
- Функции хэширования
- Сжатие произвольных сообщений до приведения к фиксированной длине
- Простота вычисления
- Устойчивость предварительного образа
- Повторная устойчивость предварительного образа
- Устойчивость к противоречивости
- MD (Свёртка сообщения)
- SHA (Алгоритмы безопасного хэширования)
- Деревья Меркла
- Деревья Patricia
- DHT (Распределённые таблицы хэширования)
- ECDSA (Алгоритм цифровой подписи эллиптической кривой)
- Выводы
- Глава 4. Биткойн
- Биткойн
- Транзакции
- Блокчейн
- Биткойн платежи
- Выводы
- Глава 5. Альтернативные койны
- Глава 6. Адаптивные контракты
- Глава 7. Азы Эфириума
- Введение
- Блокчейн Эфириум
- Элементы блокчейна Эфириум
- Предварительно скомпилированные контракты
- Учётные записи
- Блоки
- Эфир
- Сообщения
- Майнинг
- Клиенты и кошельки
- Биржа и инвестиции
- Жёлтые страницы
- Сетевая среда Эфириум
- Разработка приложений в Эфириум
- Масштабирование и проблемы безопасности
- Выводы
- Глава 8. Разработка Эфириума
- Глава 9. Hyperledger
- Глава 10. Альтернативные блокчейны
- Глава 11. Блокчейн за пределами валют
- Глава 12. Масштабируемость и прочие вызовы
- Глава 13. Текущий пейзаж и что далее
- Пробуждающиеся тенденции
- ASBC (Приспосабливаемые под приложения блокчейны)
- Блокчейны уровня корпорации
- Частные блокчейны
- Стартапы
- Усиленный исследовательский интерес
- Стандартизация
- Расширения
- Реализации реального мира
- Консорциум
- Ответы на вызовы времени
- Конвергенция
- Обучение технологии блокчейн
- Занятость
- Крипто-экономика
- Исследования в криптографии
- Новые языки программирования
- Исследования и разработка оборудования
- Исследования в формальных методах и безопасности
- Альтернативы блокчейну
- Усилия совместной работы
- Блокчейн как служба
- Усилия по снижению энергопотребления
- Предложения улучшения
- Прочие вызовы
- Тёмная сторона
- Исследование блокчейн
- Список последних заметных проектов
- Различные инструменты
- Сближение с прочими отраслями
- Будущее
- Выводы
- Указатель
данная книга преследует единственную цель: предоставить исчерпывающее введение в теоретические и практические стороны технологии блокчейна. Эта книга содержит именно те материалы, которые необходимы для полного понимания технологии блокчейн. После прочтения этой книги читатель будет способен вести разработку с глубоким пониманием внутреннего устройства технологии блокчейн и будет иметь возможность разрабатывать приложения блокчейн. Данная книга охватывает все темы, относящиеся к технологии блокчейн, включая криптографию, криптовалюты, Биткойн, Эфириум и различные прочие платформы и инструменты, применяемые в разработке блокчейна.
Рекомендуется чтобы читатель имел базовые навыки вычислительных наук и основы опыта программирования дабы получить полное преимущество от этой книги. Однако, если это не так, данная книна всё равно может быть прочитана запросто, так как при необходимости предоставляется соответствующий справочный материал.
Глава 1. Азы блокчейн приводят основные понятия распределённых вычислений, на которых основывается технология блокчейна. Она также охватывает историю, определения, свойства, типы и преимущества блокчейнов в соответствиии с механизмами, которые лежат в основе технологии блокчейн.
Глава 2. Децентрализация охватывает необходимые понятия децентрализации и её взаимодействия с технологией блокчейна. Также вводятся различные методы и платформы, которые могут применяться для децентрализации процесса или системы.
Глава 3. Основы криптографии и техники вводит теоретические основы криптографии, которые необходимы для полного понимания технологии блокчейн. Освещаются такие понятия как общедоступный и частный криптографические ключи, сопровождаемые практическими примерами. Наконец, также внлючено введение в финансовые рынки, так как имеется множество интересных вариантов применения для технологии блокчейна в финансовом секторе.
Глава 4. Биткойн охватывает Биткойн, первый и самый крупный блокчейн. Она вводит технические понятия, относящиеся к подробностям криптовалюты биткойна.
Глава 5. Альтернативные койны вводит альтернативные криптовалюты, которые были предложены после изобретения Биткойна. Она также предоставляет примеры различных альткойнов, их свойства и то как они могут разрабатываться и реализовываться.
Глава 6. Адаптивные контракты предоставляет глубокое обсуждение адаптивных контрактов. В этой главе представлены такие темы, как история, само определение адаптивного контракта (smart contract), Рекардианские контракты, оракулов и необходимые теоретические стороны адаптивных контрактов.
Глава 7. Азы Эфириума вводит подробности построения и архитектуры блокчейна Эфириум. Она охватывает различные технические понятия, относящиеся к блокчейну Эфириум, которые в свою очередь дают глубокое объяснение лежащих в основе принципов, функциональности и компоненты данной платформы.
Глава 8. Разработка Эфириума предоставляет подробное практическое введение в разработку децентрализованных приложений и адаптивных контрактов с применением данного блокчейна Эфириум. В данную главу также включены введения в Solidity и различные связанные инструменты.
Глава 9. Hyperledger предоставляет обсуждение проекта hyperledger из фонда Linux, который содержит различные проекты блокчейн, предлагаемые его участниками.
Глава 10. Альтернативные блокчейны представляет альтернативные решения и платформы блокчейн. Она предоставляет технические подробности и свойства альтернативных блокчейнов.
Глава 11. Блокчейн за пределами валют представляет практическое и подробное введение в приложения технологии блокчейн на практике, отличающиеся от криптовалют, в том числе Интернет Вещей, государственное управление, СМИ и финансы.
Глава 12. Масштабируемость и прочие вызовы посвящается обсуждению вызовов, с которыми сталкивается технология блокчейна и то как их решать.
Глава 13. Текущий пейзаж и что далее имеет целью предоставления информации о текущем ландшафте, проектах, и исследовательских усилиях, относящихся к технологии блокчейн. Помимо этого также делаются некоторые практические основы текущего состояния технологии блокчейн.
Все примеры этой книги были разработаны в Ubuntu 16.04.1 LTS (Xenial). Раз так, рекомендуется применять Ubuntu. Хотя может применяться любая операционная система, будь то Windows или Linux, однако примеры, в особенности те, которые относятся к установке, могут потребовать надлежащих изменений.
Относящиеся к криптографии примеры были разработаны с использованием инструмента командной строки OpenSSL 1.0.2g 1 Mar 2016.
Примеры Solidity Эфириума были разработаны с применением Browser Solidity, доступными через интернет https://ethereum.github.io/browser-solidity/.
Для разработки примеров, относящихся к Эфириуму, применяется редакция homestead (фермы) Эфириум. На момент написания данной книги именно она была самой последней из доступных для выгрузки версий по ссылке https://www.ethereum.org/.
относящиеся к IoT примеры были разработаны с использованием набора Vilros Raspberry Pi, применяемого для построения аппаратного примера IoT. Для примеров IoT применялись соответствующие выгружаемые пакеты Node.js V7.2.1 и npm V3.10.10, а также исполнялся сервер Node.js.
В некоторых примерах адаптивных контрактов (smart contract) применялась инфраструктура Truffle, и она доступна по ссылке http://truffleframework.com/. Все последующие доступные через npm версии должны быть удовлетворительными.
Эта книга адресована всем кто желает глубоко понимать технологию блокчейн. Она может применяться в качестве справочника разработчиками, которые создают приложения блокчейн. Кроме того, эта книга может применяться в качестве учебного пособия для курсов, относящихся к технологии блокчейн и криптовалютам. Она также может применяться для изучения ресурсов различных экзаменов и сертификаций, относящихся к технологиям криптовалют и блокчейн.
В данной книге вы найдёте ряд текстовых стилей, которые делают разницу между различными видами информации. Здесь мы приводим некоторые примеры этих стилей и объяснение их назначения.
Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов,
имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом:
"Эта строка кода просто применяет console.log для печати имеющейся базы монет путём вызова метода
web3.eth.coinbase
".
Блок кода устанавливается следующим образом:
function difference(uint x) returns (uint y)
{
z=x-5;
y=z;
}
Если мы желаем привлечь ваше внимание к определённой части кода в некотором блоке кода, соответствующая строк4а или элемент отмечается жирным шрифтом:
function difference(uint x) returns (uint y)
{
z=x-5;
y=z;
}
Любой ввод командной строки или её вывод записываются следующим образом:
$ geth --datadir .ethereum/PrivateNet/ --networkid 786 --rpc --rpccorsdomain 'http://192.168.0.17:9900'
Новые термины и важные слова отображаются жирным шрифтом. Слова, которые вы видите на экране, например, в меню или блоках диалогов появляются в тексте следующим образом: "Кликнув по кнопке Next вы переместитесь на следующий экран".
![]() | Замечание |
---|---|
Предостережения или важные замечания появляются в блоках подобных этому. |
![]() | Совет |
---|---|
Советы и ловкие приёмы возникают таким образом. |
Обращения наших читателей всегда приветствуются. Дайте нам знать что вы думаете об этой книге - что вам нравится или не нравится. Обратная связь с читателями важна нам, так как помогает нам разрабатывать издания, от которых вы на самом деле получите максимальную пользу.
Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.
Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.
Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.
Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё, вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по электронной почте непосредственно на свой адрес.
Вы можете загрузить эти файлы с кодом выполнив следующие шаги:
-
Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.
-
Переместите указатель мыши на закладку SUPPORT в верхней части.
-
Кликните по Code Downloads & Errata.
-
Введите название книги в блок Search.
-
Выберите книгу для которой вы ищете для загрузки файлы исходного кода.
-
В ниспадающем меню выберите где вы приобрели эту книгу.
-
Кликните по Code Download.
Вы также можете загрузить файлы кодов кликнув по кнопке Code Files вебстраницы на вебсайте Packt Publishing. Доступ к данной странице может быть получен путём ввода названия книги в блоке Search. Отметим, что вы должны быть зарегистрированы со своеЙ учётной записью Packt.
После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней версии:
-
WinRAR / 7-Zip для Windows
-
Zipeg / iZip / UnRarX для Mac
-
7-Zip / PeaZip для Linux
Пакет с кодом для данной книги также размещён на GitHub по адресу https://github.com/PacktPublishing/Mastering-Blockchain. У нас также имеются прочие наборы из нашего богатого каталога книг и видео доступные на https://github.com/PacktPublishing/. Следите за ними!
Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: https://www.packtpub.com/sites/default/files/downloads/MasteringBlockchain_ColorImages.pdf.
Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.
Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.
Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}
Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.
Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.
Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.