На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

Блокчейн. Руководство для начинающих разработчиков: Пер. с англ.

Автор Сингхал Б., Дамеджа Г., Панда Б.
Название Блокчейн. Руководство для начинающих разработчиков: Пер. с англ.
Серия Внесерийные книги
ISBN 978-5-9775-4052-0
Формат 70×100/16 (165×233 мм)
Объем 288
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Об авторах 11
О техническом рецензенте 13
Благодарности 15
Предисловие 17

ГЛАВА 1. Знакомство с блокчейном

19
1.1. Происхождение блокчейна 19
1.2. Что такое блокчейн? 21
Шаг 1 25
Шаг 2 25
Шаг 3 25
1.3. Централизованные и децентрализованные системы 26
1.3.1. Централизованные системы 28
1.3.2. Децентрализованные системы 29
1.4. Уровни блокчейна 31
1.4.1. Прикладной уровень (application layer) 32
1.4.2. Уровень выполнения (execution layer) 33
1.4.3. Семантический уровень (semantic layer) 33
1.4.4. Уровень распространения (propagation layer) 34
1.4.5. Уровень консенсуса (consensus layer) 35
1.5. Почему блокчейн так важен? 35
1.5.1. Ограничения централизованных систем 35
1.5.2. Долго ли ждать блокчейн? 36
1.6. Практическое применение блокчейна 37
1.7. Заключение 39
1.8. Рекомендуемые источники 39

ГЛАВА 2. Как работает блокчейн?

41
2.1. Фундаментальные основы блокчейна 41
2.2. Криптография 43
2.2.1. Криптография с симметричным ключом 45
Принцип Керкгоффса и функция XOR 46
Потоковое и блочное шифрование 47
Одноразовый блокнот 49
Стандарт шифрования данных DES 50
Расширенный стандарт шифрования AES 54
Расширение ключа AES 57
Проблемы криптографии с симметричным ключом 59
2.2.2. Криптографические хэш-функции 59
Обзор различных хэш-функций 63
SHA-2 64
SHA-256 и SHA-512 66
RIPEMD 67
SHA-3 67
Применение хэш-функций 71
Примеры кода хэш-функций 72
2.2.3. MAC и HMAC 73
2.2.4. Криптография с асимметричным ключом 74
RSA 77
Алгоритм цифровой подписи DSA 81
Криптография на эллиптических кривых 82
Алгоритм ECDSA 85
Примеры кода для криптографии с открытым ключом 87
2.2.5. Обмен ключами по Диффи — Хеллману 89
2.2.6. Открытый или закрытый ключ? 92
2.3. Теория игр 93
2.3.1. Равновесие по Нэшу 95
2.3.2. Дилемма заключенного 96
2.3.3. Проблема византийских генералов 98
2.3.4. Игры с нулевой суммой 99
2.3.5. Зачем изучать теорию игр? 100
2.4. Информатика 100
2.4.1. Хэш-указатель 101
2.4.2. Дерево Меркла 103
2.4.3. Сниппеты кода для дерева Меркла 105
2.5. Обобщаем знания 107
2.5.1. Свойства блокчейн-решений 108
Неизменность 108
Стойкость к подделке 108
Демократичность 109
Устойчивость к двойным расходам 109
Согласованное состояние реестра 110
Жизнестойкость 110
Проверяемость 110
2.5.2. Транзакции и блокчейн 110
2.5.3. Механизмы распределенного консенсуса 112
Доказательство работы (PoW) 113
Доказательство владения долей (PoS) 114
Алгоритм PBFT 115
2.6. Применение блокчейна 116
2.7. Масштабирование блокчейна 119
2.7.1. Вычисления вне блокчейна 120
2.7.2. Шардинг 122
2.8. Заключение 123
2.9. Рекомендуемые источники 124

ГЛАВА 3. Как работает Bitcoin?

127
3.1. История денег 127
3.2. Появление биткойна 130
3.2.1. Что такое биткойн? 131
3.2.2. Работа с биткойнами 133
3.3. Блокчейн Bitcoin 134
3.3.1. Структура блока 136
Дерево Меркла 137
Уровень сложности 139
3.3.2. Блок генезиса 141
3.4. Сеть Bitcoin 143
3.4.1. Регистрация нового узла в сети 145
3.4.2. Bitcoin-транзакции 149
3.4.3. Консенсус и майнинг блоков 153
3.4.4. Распространение блока 159
3.5. Промежуточные итоги главы 160
3.6. Скрипты Bitcoin 161
3.6.1. Еще раз про транзакции в сети Bitcoin 161
3.6.2. Скрипты 167
3.7. Полные узлы или SPV? 170
3.7.1. Полные узлы 170
3.7.2. Упрощенная проверка транзакций 171
3.8. Биткойн-кошельки 172
3.9. Заключение 175
3.10. Рекомендуемые источники 175

ГЛАВА 4. Как работает Ethereum?

177
4.1. От Bitcoin до Ethereum 177
4.1.1. Ethereum как блокчейн нового поколения 179
4.1.2. Философия блокчейна Ethereum 180
4.2. Введение в блокчейн Ethereum 180
4.2.1. Структура данных блокчейна Ethereum 181
4.2.2. Счета Ethereum 183
Преимущества концепции UTXO 185
Преимущества концепции счетов 186
Состояние счета 186
4.2.3. Применение префиксного trie-дерева 188
4.2.4. Дерево Меркла — Патриции 189
4.2.5. RLP-кодирование 190
4.2.6. Транзакция Ethereum и структура сообщения 191
4.2.7. Функция перехода состояния Ethereum 194
4.2.8. Газ и стоимость транзакции 196
4.3. Умные контракты Ethereum 200
4.3.1. Создание контракта 202
4.4. Виртуальная машина Ethereum и выполнение кода 202
4.5. Экосистема Ethereum 206
4.5.1. Swarm 207
4.5.2. Whisper 207
4.5.3. Децентрализованное приложение (DApp) 207
4.5.4. Компоненты разработки 207
4.6. Заключение 208
4.7. Рекомендуемые источники 208

ГЛАВА 5. Разработка блокчейн-приложений

209
5.1. Децентрализованные приложения 209
5.2. Создание блокчейн-приложений 210
5.2.1. Программирование приложений Bitcoin и Ethereum 211
5.2.2. Библиотеки и инструменты 212
5.3. Взаимодействие с блокчейном Bitcoin 212
5.3.1. Установка и инициализация библиотеки BitcoinJS в приложении node.js 213
5.3.2. Создание пары ключей для отправителя и получателя 214
5.3.3. Получение тестовых биткойнов 215
5.3.4. Получение неизрасходованных остатков 216
5.3.5. Подготовка биткойн-транзакции 217
5.3.6. Подписание входных данных транзакции 219
5.3.7. Создание HEX-кода транзакции 219
5.3.8. Трансляция транзакции в сеть 219
5.4. Программное взаимодействие с Ethereum — отправка транзакций 220
5.4.1. Настройка библиотеки и подключения 222
5.4.2. Настройка счетов Ethereum 222
5.4.3. Получение тестового эфира на счет отправителя 223
5.4.4. Подготовка транзакции Ethereum 224
5.4.5. Подписание транзакции 224
5.4.6. Отправка транзакции в сеть Ethereum 225
5.5. Создание умного контракта Ethereum 226
5.5.1. Подготовка 227
5.5.2. Программируем умный контракт 227
5.5.3. Получение сведений о контракте 230
5.5.4. Развертывание контракта в сети Ethereum 232
5.6. Вызов функций умного контракта 235
5.6.1. Получение ссылки на смарт-контракт 235
5.6.2. Вызываем функцию умного контракта 236
5.7. Блокчейн с новой точки зрения 238
5.8. Публичные и частные блокчейны 239
5.9. Архитектура децентрализованных приложений 239
5.9.1. Публичные и локальные узлы 239
5.9.2. Децентрализованные приложения и серверы 241
5.10. Заключение 241
5.11. Рекомендуемые источники 241

ГЛАВА 6. Разработка приложений Ethereum

243
6.1. Децентрализованное приложение 243
6.2. Настройка частной сети Ethereum 244
6.2.1. Установка клиента GoEthereum 245
6.2.2. Создание каталога данных geth 245
6.2.3. Создание учетной записи geth 245
6.2.4. Создание файла конфигурации genesis.json 246
6.2.5. Запуск первого узла частной сети 247
6.2.6. Запуск второго узла частной сети 250
6.3. Создание умного контракта 253
6.4. Развертывание умного контракта 259
6.4.1. Настройка библиотеки web3 и подключения 259
6.4.2. Развертывание контракта в частной сети 260
6.5. Клиентское веб-приложение 268
6.6. Заключение 278
6.7. Рекомендуемые источники 278
   
Приложение. Описание электронного архива 279
Предметный указатель 281


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2020 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.