Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Александр Вячеславович Фролов. Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство
Введение
Обратная связь
Урок 1. Кратко о блокчейне и сети Ethereum
Что такое блокчейн
Распределенная база данных
Распределенный реестр данных
Транзакции
Публичные и приватные блокчейны
Практические применения блокчейна
Проблемы с блокчейном
Как формируется цепочка блокчейна
Блокчейн Ethereum
Майнинг, или Как создаются блоки
Итоги урока
Урок 2. Подготовка рабочей среды в ОС Ubuntu и Debian
Выбор операционной системы
Установка необходимых утилит
Установка Geth и Swarm в Ubuntu
Установка Geth и Swarm в Debian
Предварительная подготовка
Загрузка дистрибутива Go
Установка переменных окружения
Проверка версии Go
Установка Geth и Swarm
Создаем приватный блокчейн
Готовим файл genesis.json
Создаем каталог для работы
Создаем аккаунт
Запускаем инициализацию узла
Параметры запуска узла
Подключаемся к нашему узлу
Управление майнингом и проверка баланса
Завершение работы консоли Geth
Итоги урока
Урок 3. Подготовка рабочей среды на Raspberry Pi 3
Подготовка Raspberry Pi 3 к работе
Установка Rasberian
Установка обновлений
Включение доступа SSH
Установка статического адреса IP
Установка необходимых утилит
Установка Go
Загрузка дистрибутива Go
Установка переменных окружения
Проверка версии Go
Установка Geth и Swarm
Создаем приватный блокчейн
Проверка учетной записи и баланса
Итоги урока
Урок 4. Учетные записи и перевод средств между аккаунтами
Просмотр и добавление аккаунтов
Просмотр списка аккаунтов
Добавление аккаунта
Параметры команды geth account
Пароли аккаунтов
Криптовалюта в Ethereum
Перевод средств с одного аккаунта на другой
Метод eth.sendTransaction
Просмотр состояния транзакции
Квитанция транзакции
Итоги урока
Урок 5. Публикация первого контракта
Смарт-контракты в Ethereum
Выполнение смарт-контракта
Виртуальная машина Ethereum
Интегрированная среда разработки Remix Solidity IDE
Запуск компиляции
Вызов функций контракта
Публикация контракта в приватной сети
Получаем определение ABI и двоичный код контракта
Публикация контракта
Проверка состояния транзакции публикации контракта
Вызов функций контракта
Пакетный компилятор solc
Установка solc в Ubuntu
Установка solc в Debian
Компиляция контракта HelloSol
Публикация контракта
Установка solc на Rasberian
Итоги урока
Урок 6. Смарт-контракты и Node.js
Установка Node.js
Установка в Ubuntu
Установка в Debian
Установка и запуск Ganache-cli
Установка Web3
Установка solc
Установка Node.js на Rasberian
Скрипт для получения списка аккаунтов в консоли
Скрипт для публикации смарт-контракта
Запуск и получение параметров
Получение параметров запуска
Компиляция контракта
Разблокировка аккаунта
Загрузка ABI и бинарного кода контракта
Оценка необходимого количества газа
Создание объекта и запуск публикации контракта
Запуск скрипта публикации контракта
Вызов функций смарт-контракта
Возможно ли обновление опубликованного смарт-контракта
Работа с Web3 версии 1.0.x
Получаем список аккаунтов
Публикация контракта
Вызов функций контракта
Перевод средств с одного аккаунта на другой
Перевод средств на аккаунт контракта
Обновляем смарт-контракт HelloSol
Создаем скрипт для просмотра баланса аккаунта
Добавляем вызов функции getBalance в скрипт call_contract_get_promise.js
Пополняем счет смарт-контракта
Итоги урока
Урок 7. Введение в Truffle
Установка Truffle
Создаем проект HelloSol
Создание каталога и файлов проекта
Каталог contracts
Каталог migrations
Каталог test
Файл truffle-config.js
Компиляция контракта HelloSol
Запуск публикации контракта
Вызов функций контракта HelloSol в приглашении Truffle
Вызов функций контракта HelloSol из скрипта JavaScript под управлением Node.js
Установка модуля truffle-contract
Вызов функций контракта getValue и getString
Вызов функций контракта setValue и setString
Изменение контракта и повторная публикация
Работа с Web3 версии 1.0.x
Вносим изменения в смарт-контракт HelloSol
Скрипты для вызова методов контракта
Тестирование в Truffle
Тест на Solidity
Тест на JavaScript
Итоги урока
Урок 8. Типы данных Solidity
Контракт для изучения типов данных
Логические типы данных
Беззнаковые целые числа и целые числа со знаком
Числа с фиксированной запятой
Адрес
Переменные сложных типов
Массивы фиксированного размера
Динамические массивы
Перечисление
Структуры
Словари mapping
Итоги урока
Урок 9. Миграция контрактов в приватную сеть и в сеть Rinkeby
Публикация контракта из Truffle в приватную сеть Geth
Подготовка узла приватной сети
Подготовка контракта для работы
Компиляция и миграция контракта в сеть Truffle
Запуск миграции в локальную сеть geth
Добываем артефакты Truffle
Публикация контракта из Truffle в тестовой сети Rinkeby
Подготовка узла Geth для работы с Rinkeby
Синхронизация узла
Добавление аккаунтов
Пополнение аккаунта Rinkeby эфиром
Запуск миграции контракта в сеть Rinkeby
Просмотр информации о контракте в сети Rinkeby
Консоль Truffle для сети Rinkeby
Более простой способ вызова функций контракта
Вызов методов контракта при помощи Node.js
Перевод средств между аккаунтами в консоли Truffle для Rinkby
Итоги урока
Урок 10. Децентрализованное хранилище данных Ethereum Swarm
Как работает Ethereum Swarm
Установка и запуск Swarm
Операции с файлами и каталогами
Загрузка файла в Ethereum Swarm
Чтение файла из Ethereum Swarm
Просмотр манифеста загруженного файла
Загрузка каталогов с подкаталогами
Чтение файла из загруженного каталога
Использование публичного шлюза Swarm
Обращение к Swarm из скриптов Node.js
Модуль Perl Net::Ethereum::Swarm
Установка модуля Net::Ethereum::Swarm
Запись и чтение данных
Итоги урока
Урок 11. Фреймворк Web3.py для работы с Ethereum на Python
Установка Web3.py
Обновление и установка необходимых пакетов
Установка модуля easysolc
Публикация контракта с помощью Web3.py
Компиляция контракта
Подключение к провайдеру
Выполнение публикации контракта
Сохранение адреса контракта и abi в файле
Запуск скрипта публикации контракта
Вызов методов контракта
Чтение адреса и abi контракта из файла JSON
Подключение к провайдеру
Создание объекта контракта
Вызов методов контракта
Truffle и Web3.py
Итоги урока
Урок 12. Оракулы
Может ли смарт-контракт доверять данным из внешнего мира
Оракулы как информационные посредники блокчейна
Источник данных
Код для представления данных из источника
Оракул для записи обменного курса в блокчейн
Контракт USDRateOracle
Обновление обменного курса в смарт-контракте
Использование провайдера Web Socket
Ожидание события RateUpdate
Обработка события RateUpdate
Инициирование обновления данных в смарт-контракте
Итоги урока
Отрывок из книги
Вы можете связаться с автором этой книги по адресам sbook@frolov-lib.ru или https://www.facebook.com/frolov.shop2you.
Пожалуйста, отправляйте ваши замечания и рекомендации, автор постарается их учесть при переиздании книги.
.....
Address: { 4f744742ac711fd111c7a983176db1d48d29f413 }
Команда account new выведет на консоль в фигурных скобках так называемый адрес узла. В нашем случае это адрес 4f744742ac711fd111c7a983176db1d48d29f413. Мы будем указывать его в различных командах.
.....