Similar presentations:
Анализ применения технологий блокчейн для разработки хранилищ данных
1.
Юрченко Роман НиколаевичНаучный руководитель: к.т.н., доцент, Дзенскевич
Елена Андреевна
Выпускная квалификационная
работа на тему:
Анализ применения технологий
блокчейн для разработки
хранилищ данных
2019
2.
Цели и задачиЦель:
Целью данной работы является исследование и анализ
применения технологий блокчейн для последующей разработки
децентрализованного приложения для хранения данных.
Задачи:
• Анализ теоретической информации о технологии блокчейн.
• Исследование особенностей блокчейна Ethereum;
• Изучение смарт-контрактов: языка разработки, средств разработки и
отладки;
• Анализ децентрализованных приложений и определение основных
требований для них;
• Анализ и выбор программных продуктов для разработки Ethereum –
приложений;
• Разработка смарт-контракта: назначение контракта, определение
методов, отладка;
• Разработка демонстрационного децентрализованного приложения.
01
3.
Хранилище и основные требования к немуХранилище данных - это предметно-ориентированный, интегрированный,
неизменчивый, поддерживающий хронологию набор данных, организованный для
целей поддержки принятия решений и единого места сбора и хранения данных
организации.
Требования к хранилищам данных
децентрализованных приложений:
Распределённость
Структурированность
Доступность
Удаление данных
Поддержка шардинга
Полнотекстовый поиск
02
4.
Основные элементы блокчейна Ethereum03
5.
Аккаунты в сети EthereumВнешняя учётная запись
Контрактная учётная запись
<code>
<code>
<code>
• Контролируются с помощью
внешних ключей;
• Не имеют связанного с ними
кода;
• Могут отправлять сообщения
другим
внешним
учётным
записям и контрактным записям
(инициировать
новые
транзакции);
• Контролируются специальным
кодом, указанным в условиях
контракта;
• Имеют связанный с ними код;
• Не
могут
самостоятельно
инициировать новые транзакции
04
6.
Алгоритмы криптографии EthereumSHA-3 – алгоритм хеширования
ETHASH – алгоритм доказательства работы (поиск параметра nonce).
Основное отличие ETHASH – усложнения поиска nonce.
Шаг 1 – создание DAG-ресурса (большое количество псевдослучаных
последовательностей, которые практически невозможно перебрать все за раз).
Шаг 2 – выбор из DAG-ресурса необходимого числа последовательностей.
Шаг 3 – перебор выбранных значений для поиска подходящего значения nonce.
05
7.
Smart-контрактыСмарт-контракт – это некий компьютерный алгоритм в среде блокчейн, для заключения
какого-либо соглашения между участниками договора и служащий для обеспечения
исполнения условий договора без участия третьих лиц.
Классификация
По среде
выполнения:
• централизованная;
• децентрализованная.
По способу
задания и
выполнения
условий
• полные по Тьюрингу
смарт-контракты;
• неполные по Тьюрингу
смарт-контракты.
По способу
инициации:
• автоматическое
выполнение при
наступлении
определённых условий;
• ручное – через создание
транзакций.
По уровню
приватности
• полностью открытые;
• частично открытые;
• полностью
конфиденциальные.
В узком смысле – это набор функций и данных, находящихся по определённому адресу в
блочейне.
06
8.
Средства разработки smart-контрактовTruffle
Автоматизированное
тестирование контрактов
Наличие генераторов для
создания новых контрактов и
тестов
Консоль для удобной работы
со
скомпилированными
контрактами
Компиляция
и
развёртывание контрактов в
тестовых сетях.
Remix
remix-debug – отладка;
remix-tests –модульное
тестирование;
remix-astwalker – инструмент
для анализа solidity AST;
remixd CLI – позволяет
получить доступ к локальным
элементам Remix
Расчёт стоимости транзакций
и вызовов методов
контракта.
Развертывание контракта в
тестовых сетях.
Solc
Компиляция контракта на
языке Solidity в бинарный
код;
выделение содержимого ABI
в среде Node.js.
07
9.
Remix IDE. Отладка и тестирование смарт-контракта08
10.
Тестовые сети отладкиНазначение – разработка и тестирование
децентрализованных приложений.
Свойства:
• бесплатные;
• криптовалютные средства не имеют реальной
стоимости;
• собственные механизмы получения средств;
• собственные интерфейсы.
Развернуты:
• локально;
• в сети интернет.
Позволяют:
• создать\выбрать зарегистрированного пользователя;
• определить текущий баланс пользователя;
• перевести средства другому пользователю;
• получить средства от другого пользователя;
• загрузить контракт в сеть;
• вызывать свойства и методы контракта.
09
11.
Основные требования к децентрализованным приложениямЦентрализованное
приложение
• Открытый исходный код
Децентрализованное
приложение
• Внутренняя валюта
• Децентрализованный консенсус
• Отсутствие центральной точки отказа
10
12.
Архитектура и структура демонстрационного приложения11
13.
Преимущества использования Mongo DB• Документо-ориентированность
• Специальные запросы
• Индексация
• Репликация
Реляционная БД
MongoDB
База данных
База данных
• Балансировка нагрузки
Таблица
Коллекция
Ряд
Документ
• MongoDB.GridFS
Колонка
Поле
Объединение таблиц
Встроенные документы (embedded)
Первичный ключ (primary key)
Первичный ключ (primary key)
• Агрегация операций
По умолчанию MongoDB генерирует
Default key_id
12
14.
Современная разработка веб-приложений13
15.
Интерфейс децентрализованного приложения14
16.
ЗаключениеВ соответствии с поставленной целью были решены следующие задачи:
• Собрана и проанализирована теоретическая информация о технологии
блокчейн и основанных на ней продуктах;
• Изучен и проанализирован алгоритм смарт-контрактов;
• Проведён анализ децентрализованных приложений и определены
основные требования для них;
• Проанализированы
и
выбраны
средства
разработки
децентрализованных приложений;
• Разработано децентрализованное приложение.
15