Блокчейн, Руководство для начинающих разработчиков, Сингхал Б., Дамеджа Г., Панда П.С., 2020.
Книга предназначена для изучения фундаментальных основ блокчейна и решения прикладных задач. С нуля изложены основы криптографии, устройство блокчейна и его основные компоненты: математика, криптография, теория игр. Изложены технические основы самых известных блокчейнов в мире — Bitcoin и Ethereum. Продемонстрировано, как можно запрограммировать блокчейн для разных вариантов использования, не ограничиваясь только криптовалютой. Рассмотрен процесс разработки кода для управления транзакциями на языках JavaScript и Solidity, показано, как самостоятельно создавать и размещать умные контракты. Продемонстрирован полный цикл разработки децентрализованного приложения (DApps).
Происхождение блокчейна.
Одним из первых переломных моментов цифровой истории стало появление в 1970-х годах протокола TCP/IP, на котором основан современный Интернет. До появления TCP/IP мы жили в эпоху коммутируемых каналов, которые нуждались в прямом физическом соединении между двумя устройствами.
Когда в начале 1990-х годов Интернет явился общественности в виде «сетевой паутины» World Wide Web (WWW), ему пришлось обеспечивать связь всех со всеми. Это связано с тем, что Интернет построен поверх открытого и децентрализованного протокола TCP/IP. Когда какие-либо новые технологии, особенно революционные, попадают на рынок, они либо умирают сами по себе, либо приобретают такое влияние, что становятся общепринятой нормой. Общество приспособилось к сетевой революции и по-своему воспользовалось возможностями, которые она предлагала. В результате сеть сформировалась, пожалуй, не совсем в том виде, как это было задумано. Она могла бы стать более открытой, доступной и равноправной. Однако многие новые технологии начали накладываться на существующие структуры, и к сегодняшнему дню Интернет стал таким, каков он есть, — более централизованным. Люди склонны привыкать к ограничениям технологии. Нынче они вполне довольны, если международный перевод средств занимает несколько дней, или обходится слишком дорого, или недостаточно надежен.
ОГЛАВЛЕНИЕ.
Об авторах
О техническом рецензенте.
Благодарности.
Предисловие.
ГЛАВА 1. Знакомство с блокчейном.
1.1. Происхождение блокчейна.
1.2. Что такое блокчейн?.
Шаг 1.
Шаг 2.
Шаг 3.
1.3. Централизованные и децентрализованные системы.
1.3.1. Централизованные системы.
1.3.2. Децентрализованные системы.
1.4. Уровни блокчейна.
1.4.1. Прикладной уровень (application layer).
1.4.2. Уровень выполнения (execution layer).
1.4.3. Семантический уровень (semantic layer).
1.4.4. Уровень распространения (propagation layer).
1.4.5. Уровень консенсуса (consensus layer).
1.5. Почему блокчейн так важен?.
1.5.1. Ограничения централизованных систем.
1.5.2. Долго ли ждать блокчейн?.
1.6. Практическое применение блокчейна.
1.7. Заключение.
1.8. Рекомендуемые источники.
ГЛАВА 2. Как работает блокчейн?.
2.1. Фундаментальные основы блокчейна.
2.2. Криптография.
2.2.1. Криптография с симметричным ключом.
Принцип Керкгоффса и функция XOR.
Потоковое и блочное шифрование.
Одноразовый блокнот.
Стандарт шифрования данных DES.
Расширенный стандарт шифрования AES.
Расширение ключа AES.
Проблемы криптографии с симметричным ключом.
2.2.2. Криптографические хэш-функции.
Обзор различных хэш-функций.
SHA-2.
SHA-256 и SHA-512.
RIPEMD.
SHA-3.
Применение хэш-функций.
Примеры кода хэш-функций.
2.2.3. MAC и НМАС.
2.2.4. Криптография с асимметричным ключом.
RSA.
Алгоритм цифровой подписи DSA.
Криптография на эллиптических кривых.
Алгоритм ECDSA.
Примеры кода для криптографии с открытым ключом.
2.2.5. Обмен ключами по Диффи — Хеллману.
2.2.6. Открытый или закрытый ключ?.
2.3. Теория игр.
2.3.1. Равновесие по Нэшу.
2.3.2. Дилемма заключенного.
2.3.3. Проблема византийских генералов.
2.3.4. Игры с нулевой суммой.
2.3.5. Зачем изучать теорию игр?.
2.4. Информатика.
2.4.1. Хэш-указатель.
2.4.2. Дерево Меркла.
2.4.3. Сниппеты кода для дерева Меркла.
2.5. Обобщаем знания.
2.5.1. Свойства блокчейн-решений.
Неизменность.
Стойкость к подделке.
Демократичность.
Устойчивость к двойным расходам.
Согласованное состояние реестра.
Жизнестойкость.
Проверяемость.
2.5.2. Транзакции и блокчейн.
2.5.3. Механизмы распределенного консенсуса.
Доказательство работы (PoW).
Доказательство владения долей (PoS).
Алгоритм PBFT.
2.6. Применение блокчейна.
2.7. Масштабирование блокчейна.
2.7.1. Вычисления вне блокчейна.
2.7.2. Шардинг.
2.8. Заключение.
2.9. Рекомендуемые источники.
ГЛАВА 3. Как работает Bitcoin?
3.1. История денег.
3.2. Появление биткойна.
3.2.1. Что такое биткойн?.
3.2.2. Работа с биткойнами.
3.3. Блокчейн Bitcoin.
3.3.1. Структура блока.
Дерево Меркла.
Уровень сложности.
3.3.2. Блок генезиса.
3.4. Сеть Bitcoin.
3.4.1. Регистрация нового узла в сети.
3.4.2. Bitcoin-транзакции.
3.4.3. Консенсус и майнинг блоков.
3.4.4. Распространение блока.
3.5. Промежуточные итоги главы.
3.6. Скрипты Bitcoin.
3.6.1. Еще раз про транзакции в сети Bitcoin.
3.6.2. Скрипты.
3.7. Полные узлы или SPV?.
3.7.1. Полные узлы.
3.7.2. Упрощенная проверка транзакций.
3.8. Биткойн-кошельки.
3.9. Заключение.
3.10. Рекомендуемые источники.
ГЛАВА 4. Как работает Ethereum?.
4.1. От Bitcoin до Ethereum.
4.1.1. Ethereum как блокчейн нового поколения.
4.1.2. Философия блокчейна Ethereum.
4.2. Введение в блокчейн Ethereum.
4.2.1. Структура данных блокчейна Ethereum.
4.2.2. Счета Ethereum.
Преимущества концепции UTXO.
Преимущества концепции счетов.
Состояние счета.
4.2.3. Применение префиксного trie-дерева.
4.2.4. Дерево Меркла — Патриции.
4.2.5. RLP-кодирование.
4.2.6. Транзакция Ethereum и структура сообщения.
4.2.7. Функция перехода состояния Ethereum.
4.2.8. Газ и стоимость транзакции.
4.3. Умные контракты Ethereum.
4.3.1. Создание контракта.
4.4. Виртуальная машина Ethereum и выполнение кода.
4.5. Экосистема Ethereum.
4.5.1. Swarm.
4.5.2. Whisper.
4.5.3. Децентрализованное приложение (DApp).
4.5.4. Компоненты разработки.
4.6. Заключение.
4.7. Рекомендуемые источники.
ГЛАВА 5. Разработка блокчейн-приложений.
5.1. Децентрализованные приложения.
5.2. Создание блокчейн-приложений.
5.2.1. Программирование приложений Bitcoin и Ethereum.
5.2.2. Библиотеки и инструменты.
5.3. Взаимодействие с блокчейном Bitcoin.
5.3.1. Установка и инициализация библиотеки BitcoinJS в приложении node.js.
5.3.2. Создание пары ключей для отправителя и получателя.
5.3.3. Получение тестовых биткойнов.
5.3.4. Получение неизрасходованных остатков.
5.3.5. Подготовка биткойн-транзакции.
5.3.6. Подписание входных данных транзакции.
5.3.7. Создание НЕХ-кода транзакции.
5.3.8. Трансляция транзакции в сеть.
5.4. Программное взаимодействие с Ethereum — отправка транзакций.
5.4.1. Настройка библиотеки и подключения.
5.4.2. Настройка счетов Ethereum.
5.4.3. Получение тестового эфира на счет отправителя.
5.4.4. Подготовка транзакции Ethereum.
5.4.5. Подписание транзакции.
5.4.6. Отправка транзакции в сеть Ethereum.
5.5. Создание умного контракта Ethereum.
5.5.1. Подготовка.
5.5.2. Программируем умный контракт.
5.5.3. Получение сведений о контракте.
5.5.4. Развертывание контракта в сети Ethereum.
5.6. Вызов функций умного контракта.
5.6.1. Получение ссылки на смарт-контракт.
5.6.2. Вызываем функцию умного контракта.
5.7. Блокчейн с новой точки зрения.
5.8. Публичные и частные блокчейны.
5.9. Архитектура децентрализованных приложений.
5.9.1. Публичные и локальные узлы.
5.9.2. Децентрализованные приложения и серверы.
5.10. Заключение.
5.11. Рекомендуемые источники.
ГЛАВА 6. Разработка приложений Ethereum.
6.1. Децентрализованное приложение.
6.2. Настройка частной сети Ethereum.
6.2.1. Установка клиента GoEthereum.
6.2.2. Создание каталога данных geth.
6.2.3. Создание учетной записи geth.
6.2.4. Создание файла конфигурации genesis.json.
6.2.5. Запуск первого узла частной сети.
6.2.6. Запуск второго узла частной сети.
6.3. Создание умного контракта.
6.4. Развертывание умного контракта.
6.4.1. Настройка библиотеки web3 и подключения.
6.4.2. Развертывание контракта в частной сети.
6.5. Клиентское веб-приложение.
6.6. Заключение.
6.7. Рекомендуемые источники.
Приложение. Описание электронного архива.
Предметный указатель.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Блокчейн, Руководство для начинающих разработчиков, Сингхал Б., Дамеджа Г., Панда П.С., 2020 - fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.Купить эту книгу
Скачать - pdf - Яндекс.Диск.
Дата публикации:
Теги: учебник по информатике :: информатика :: компьютеры :: Сингхал :: Дамеджа :: Панда
Смотрите также учебники, книги и учебные материалы:
Следующие учебники и книги:
- Информатика, Грошев А.С., Закляков П.В., 2018
- Создание служб Windows Communication Foundation, Лёве Д., 2008
- Системное администрирование в Linux, Адельштайн Т., Любанович Б., 2010
- Современные информационно-коммуникационные технологии в научно-исследовательской деятельности и образовании, Луценко Е.В., Меретуков Г.М., Лойко В.И., 2020
Предыдущие статьи:
- Децентрализованные приложения, технология Blockchain в действии, Равал С., 2017
- Администрирование Microsoft Windows Server 2012, Линн С., 2014
- Unity для разработчика, мобильные мультиплатформенные игры, Мэннинг Д., Батфилд-Эддисон П., 2018
- Регрессионный анализ данных в пакете Mathcad, Воскобойников Ю.Е., 2011