USING
BLOCKCHAIN
IN NODE.JS
PROJECT
JavaScript Ninja’s experience
ЗА ТРИ ГОДА ОПЫТА РАБОТЫ:
➤ Разработкой Point of Sale системы
➤ Embedded система для анализа сетевого трафика
➤ Учавствовал в американском стартапе по разработке
антивируса
➤ Маркетплейс для торговли природными ресурсами на
блокчейне с использованием Quorum
➤ Участвовал в разработке проектов Kyiv Smart City
КАК ТРАКТУЮТ БЛОКЧЕЙН:
➤ Конкретный блокчейн (Bitcoin,
Ethereum, Quorum) - энтузиасты
криптовалют понимают под этим
какой-то конкретный блокчейн.
➤ Блокчейн как технология -
финансисты и бизнесмены
подразумевают технологию, что-
то, что решает какие-то проблемы
или задачи в бизнесе.
➤ Реализация технологии в
конкретном случае - стартапы,
которые собирали ICO, потом
STO, потом IEO подразумевают
реализацию блокчейна конкретно
для их случая.
«Блокчейн - это технология совместного
хранения данных, которая решает
проблему доверия в Trustless среде.
ТЕХНИЧЕСКАЯ СТОРОНА БЛОКЧЕЙНА
➤ Блоки состоят из транзакций - цифровых значений о
передачи собственности, подписанные ЕЦП;
➤ У каждого аккаунта есть свой публичный ключ - это как
номер счета;
➤ Все блоки в блокчейне связаны стойкой хеш-функцией.
Структура:
CENTRALIZATION
DECENTRALIZATION
Когда стоит использовать блокчейн:
➤ Хранение и учет;
➤ Передача активов между пользователями;
➤ Управление учетной системой ведется несколькими
независимимы сторонами.
КРИТЕРИИ ОТЛИЧИЯ БЛОКЧЕЙН-СИСТЕМ
➤ По доступу - публичный / приватный:
Публичный — кто угодно может иметь доступ к
транзакциям и проводить аудит.
Приватный — только заранее определенные стороны
имеют такие права.
➤ По возможности валидирования транзакций -
Permissioned / Permissionless:
Permissionless — кто угодно может стать валидатором и
создавать новые блоки.
Permissioned — только специально назначенные стороны
могут верифицировать транзакции и формировать
блоки.
КРИТЕРИИ ОТЛИЧИЯ БЛОКЧЕЙН-СИСТЕМ
➤ По механизму валидирования транзакций (алгоритм
консенсуса)
Алгоритм консенсуса может
определяться как механизм,
с помощью которого
блокчейн сеть достигает
консенсуса.
Соблюдаются правила протокола, и гарантируют, что все
транзакции происходят доверенным способом, поэтому монеты
могут быть потрачены только один раз.
КОНСЕНСУС PROOF-OF-WORK
➤ Количество валидаторов (майнеров)
неизвестно;
➤ Валидаторы анонимны и не имеют
репутации;
➤ Голос подкрепляется
доказательством работы;
➤ Консенсус достигнут, если стороны,
которые контролируют большинство
мощности в согласии;
➤ Примеры: Bitcoin, Monero, Litecoin

КОНСЕНСУС PROOF-OF-STAKE
➤ Создатель блока
определяется алгоритмом;
➤ Шанс проголосовать
пропорционален балансу;
➤ Валидатор теряет свои
монеты, если заверяет
неправильные или
конфликтующие блоки;
➤ Консенсус достигается, если владельцы большинства монет
согласовали состояние базы данных;
➤ Примеры: Peercoin, NXT, Bitshares
КОНСЕНСУС BFT
➤ The Byzantine fault tolerance;
➤ Количество валидаторов заранее
известно;
➤ Валидаторы идентифицированы и знают
друг друга;
➤ Добавление или удаление валидатора
требует согласия остальных;
➤ Пример: Hyperledger (опционально)

АРХИТЕКТУРА ПРИЛОЖЕНИЙ
ДЕЦЕНТРАЛИЗОВАННАЯ
СИСТЕМА
ЦЕНТРАЛИЗОВАННАЯ СИСТЕМА С
ДЕЛЕГАЦИЕЙ ПРОЦЕССИНГА
ОПРЕДЕЛЕННОЙ БИЗНЕСС-ЛОГИКИ
В ДЕЦЕНТРАЛИЗОВАННУЮ СЕТЬ
СМАРТ КОНТРАКТЫ
СМАРТ КОНТРАКТЫ
➤ Записываются в виде кода, существующего в распределенном
реестре — блокчейне, который поддерживается и управляется сетью
компьютеров. Простыми словами, умные контракты позволяют
обмениваться активами, не прибегая к услугам посредников;
➤ Дают возможность выполнять надежные и
конфиденциальные транзакции без участия
внешних посредников в лице банков или
государственных органов;
➤ Являются прослеживаемыми, прозрачными и
необратимыми;
➤ Содержат информацию об обязательствах
сторон и санкциях за их нарушение;
➤ Автоматически обеспечивают выполнение всех
условий договора.
СЛУЧАИ ИСПОЛЬЗОВАНИЯ БЛОКЧЕЙНА
➤ Взаиморасчеты
между банками;
➤ Публичные
реестры;
➤ Аукционы и биржи
➤ Голосования.
NODE.JS ?
➤ Очень быстро обретает популярность, растет
комьюнити;
➤ Он достаточно легковесный;
➤ Зашитая в архитектуре масштабируемость;
➤ Очень много различных либ и фреймворков. Большое
количество сервисов на которое попадаешь в
интернете, предоставляют SDK на JavaScript.
БИБЛИОТЕКИ ДЛЯ ИНТЕГРАЦИИ
➤ web3.js
➤ Ethers.js
Библиотеки представляют собой набор
модулей, которые содержат специальные
функции для экосистемы Ethereum такие как
- для взаимодействия с блокчейном Ethereum
и смарт-контрактами, модуль для p2p
общения с другими узлами и други
вспомогательные утилиты для
разработчиков DApp.
ТЕСТИРОВАНИЕ
Явной необходимостью с точки зрения смарт-контрактов
является покрытие функционала смарт-контракта тестами.
➤ Методология BDD
➤ Truffle (https://truffleframework.com/docs/truffle/testing/
testing-your-contracts)
QUORUM BLOCKCHAIN
Quorum поддерживает:
➤ приватность на уровне транзакций;
➤ прозрачность сети, настраиваемую согласно требованиям бизнеса;
➤ блокчейн транзакции среди ограниченной группы определенных
участников.
Quorum - это блокчейн инфраструктура основанная на
Ethereum, созданная специально для финансового сектора.
SAAS-РЕШЕНИЯ - KALEIDO / QUORUM AZURE
На высоком уровне - это SAAS-решение -
платформа, которая была разработана,
чтобы упростить процесс разворачивания
приватной блокчейн-сети
СПАСИБО ЗА ВНИМАНИЕ!
МАКСИМ ДЕМИДЕНКО
EMAIL: M.DEMYD@GMAIL.COM
FACEBOOK: FACEBOOK.COM/MAX.DEMIDENKO
WEBSITE: CODEMOTION.NINJA

"Using Blockchain in Node.js project: JavaScript Ninja’s experience" Maksym Demydenko

  • 1.
  • 2.
    ЗА ТРИ ГОДАОПЫТА РАБОТЫ: ➤ Разработкой Point of Sale системы ➤ Embedded система для анализа сетевого трафика ➤ Учавствовал в американском стартапе по разработке антивируса ➤ Маркетплейс для торговли природными ресурсами на блокчейне с использованием Quorum ➤ Участвовал в разработке проектов Kyiv Smart City
  • 3.
    КАК ТРАКТУЮТ БЛОКЧЕЙН: ➤Конкретный блокчейн (Bitcoin, Ethereum, Quorum) - энтузиасты криптовалют понимают под этим какой-то конкретный блокчейн. ➤ Блокчейн как технология - финансисты и бизнесмены подразумевают технологию, что- то, что решает какие-то проблемы или задачи в бизнесе. ➤ Реализация технологии в конкретном случае - стартапы, которые собирали ICO, потом STO, потом IEO подразумевают реализацию блокчейна конкретно для их случая.
  • 4.
    «Блокчейн - этотехнология совместного хранения данных, которая решает проблему доверия в Trustless среде.
  • 5.
    ТЕХНИЧЕСКАЯ СТОРОНА БЛОКЧЕЙНА ➤Блоки состоят из транзакций - цифровых значений о передачи собственности, подписанные ЕЦП; ➤ У каждого аккаунта есть свой публичный ключ - это как номер счета; ➤ Все блоки в блокчейне связаны стойкой хеш-функцией. Структура:
  • 6.
    CENTRALIZATION DECENTRALIZATION Когда стоит использоватьблокчейн: ➤ Хранение и учет; ➤ Передача активов между пользователями; ➤ Управление учетной системой ведется несколькими независимимы сторонами.
  • 7.
    КРИТЕРИИ ОТЛИЧИЯ БЛОКЧЕЙН-СИСТЕМ ➤По доступу - публичный / приватный: Публичный — кто угодно может иметь доступ к транзакциям и проводить аудит. Приватный — только заранее определенные стороны имеют такие права. ➤ По возможности валидирования транзакций - Permissioned / Permissionless: Permissionless — кто угодно может стать валидатором и создавать новые блоки. Permissioned — только специально назначенные стороны могут верифицировать транзакции и формировать блоки.
  • 8.
    КРИТЕРИИ ОТЛИЧИЯ БЛОКЧЕЙН-СИСТЕМ ➤По механизму валидирования транзакций (алгоритм консенсуса) Алгоритм консенсуса может определяться как механизм, с помощью которого блокчейн сеть достигает консенсуса. Соблюдаются правила протокола, и гарантируют, что все транзакции происходят доверенным способом, поэтому монеты могут быть потрачены только один раз.
  • 9.
    КОНСЕНСУС PROOF-OF-WORK ➤ Количествовалидаторов (майнеров) неизвестно; ➤ Валидаторы анонимны и не имеют репутации; ➤ Голос подкрепляется доказательством работы; ➤ Консенсус достигнут, если стороны, которые контролируют большинство мощности в согласии; ➤ Примеры: Bitcoin, Monero, Litecoin

  • 10.
    КОНСЕНСУС PROOF-OF-STAKE ➤ Создательблока определяется алгоритмом; ➤ Шанс проголосовать пропорционален балансу; ➤ Валидатор теряет свои монеты, если заверяет неправильные или конфликтующие блоки; ➤ Консенсус достигается, если владельцы большинства монет согласовали состояние базы данных; ➤ Примеры: Peercoin, NXT, Bitshares
  • 11.
    КОНСЕНСУС BFT ➤ TheByzantine fault tolerance; ➤ Количество валидаторов заранее известно; ➤ Валидаторы идентифицированы и знают друг друга; ➤ Добавление или удаление валидатора требует согласия остальных; ➤ Пример: Hyperledger (опционально)

  • 12.
  • 13.
    ДЕЦЕНТРАЛИЗОВАННАЯ СИСТЕМА ЦЕНТРАЛИЗОВАННАЯ СИСТЕМА С ДЕЛЕГАЦИЕЙПРОЦЕССИНГА ОПРЕДЕЛЕННОЙ БИЗНЕСС-ЛОГИКИ В ДЕЦЕНТРАЛИЗОВАННУЮ СЕТЬ
  • 14.
  • 15.
    СМАРТ КОНТРАКТЫ ➤ Записываютсяв виде кода, существующего в распределенном реестре — блокчейне, который поддерживается и управляется сетью компьютеров. Простыми словами, умные контракты позволяют обмениваться активами, не прибегая к услугам посредников; ➤ Дают возможность выполнять надежные и конфиденциальные транзакции без участия внешних посредников в лице банков или государственных органов; ➤ Являются прослеживаемыми, прозрачными и необратимыми; ➤ Содержат информацию об обязательствах сторон и санкциях за их нарушение; ➤ Автоматически обеспечивают выполнение всех условий договора.
  • 16.
    СЛУЧАИ ИСПОЛЬЗОВАНИЯ БЛОКЧЕЙНА ➤Взаиморасчеты между банками; ➤ Публичные реестры; ➤ Аукционы и биржи ➤ Голосования.
  • 17.
    NODE.JS ? ➤ Оченьбыстро обретает популярность, растет комьюнити; ➤ Он достаточно легковесный; ➤ Зашитая в архитектуре масштабируемость; ➤ Очень много различных либ и фреймворков. Большое количество сервисов на которое попадаешь в интернете, предоставляют SDK на JavaScript.
  • 18.
    БИБЛИОТЕКИ ДЛЯ ИНТЕГРАЦИИ ➤web3.js ➤ Ethers.js Библиотеки представляют собой набор модулей, которые содержат специальные функции для экосистемы Ethereum такие как - для взаимодействия с блокчейном Ethereum и смарт-контрактами, модуль для p2p общения с другими узлами и други вспомогательные утилиты для разработчиков DApp.
  • 19.
    ТЕСТИРОВАНИЕ Явной необходимостью сточки зрения смарт-контрактов является покрытие функционала смарт-контракта тестами. ➤ Методология BDD ➤ Truffle (https://truffleframework.com/docs/truffle/testing/ testing-your-contracts)
  • 20.
    QUORUM BLOCKCHAIN Quorum поддерживает: ➤приватность на уровне транзакций; ➤ прозрачность сети, настраиваемую согласно требованиям бизнеса; ➤ блокчейн транзакции среди ограниченной группы определенных участников. Quorum - это блокчейн инфраструктура основанная на Ethereum, созданная специально для финансового сектора.
  • 21.
    SAAS-РЕШЕНИЯ - KALEIDO/ QUORUM AZURE На высоком уровне - это SAAS-решение - платформа, которая была разработана, чтобы упростить процесс разворачивания приватной блокчейн-сети
  • 24.
    СПАСИБО ЗА ВНИМАНИЕ! МАКСИМДЕМИДЕНКО EMAIL: M.DEMYD@GMAIL.COM FACEBOOK: FACEBOOK.COM/MAX.DEMIDENKO WEBSITE: CODEMOTION.NINJA