Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hyperledger Fabric: From Proof Of Concept to Pr...

Hyperledger Fabric: From Proof Of Concept to Production

В данной презентации рассмотрим следующие вопросы:
1. Зачем авиакомпании блокчейн?
2. Почему Hyperledger Fabric?
3. Какие у него плюсы и минусы?
4. S7 Techlab Opensource
5. Проблемы Fabric и их решение перед запуском в production

Avatar for Dmitry Zhvakin

Dmitry Zhvakin

February 28, 2019

Other Decks in Programming

Transcript

  1. Блокчейн в авиации Взаиморасчеты в агентской сети Продажа авиабилетов и

    услуг Взаиморасчеты при обслуживании самолетов Топливо, наземное обслуживание 3
  2. Технологии Ethereum Система взаимодействия с агентами, 2017-2018 Hyperledger Fabric Система

    взаимодействия с агентами, 2018 - ... Платформа B2B взаимодействия 4
  3. Что есть блокчейн фреймворк? • Consensus • P2P Networking •

    Identity • Ledger • On-chain environment (smart contracts) • Off-chain tooling (SDK) 5
  4. Трудности выбора: Ethereum + • Tooling • Easy deployment •

    Smart contracts libraries • Ecosystem - • Single ledger • Solidity • Permissionless / anonymous by initial design 6
  5. Трудности выбора: Hyperledger Fabric • Двухфазный коммит • Изоляция данных

    на основе каналов • Идентификация на базе PKI • Гибкая модель конфигурирования участников сети (MSP) • Продвинутая система настройки разрешений на операции (policies) • Единая кодовая база на Go 7
  6. Hyperledger Fabric • Linux Foundation • Modular architecture • Customizable

    and pluggable components • Containerized smart-contracts (a.k.a chaincodes) 8
  7. Основные компоненты сети • Peer - подтверждает транзакции и хранит

    актуальную версию данных • Orderer - собирает транзакции в блоки и гарантирует их доставку • Client - формирует транзакции, подписывает их у пиров и отправляет на orderer 9
  8. Основные компоненты сети • Channel - абстракция на базе сети

    для обеспечения конфиденциальности • Chaincode - обеспечивает доступ и изменение данных в рамках канала • Endorsement policy - политика одобрения внесения изменения данных в рамках канала 10
  9. Проблемы • Отсутствие best practices при разработке чейнкодов • Отсутствие

    стабильного SDK на Go • Отсутствие нативного мониторинга узлов сети • Сложное изменение конфигурации участников сети 13
  10. Что такое чейнкод? • Написан на Go, Java или JS

    • Атрибуты уникальности: (название, путь до исходных файлов и версия) • Запускается в виде Docker-контейнера • Общается с пиром по протоколу GRPC 15
  11. Проблема #1 - отсутствие best practice при разработке чейнкодов •

    Отсутствие нативного роутера внутри чейнкода 16
  12. • Многократное дублирование кода в рамках разработки смарт-контрактов • Ограниченная

    функциональность встроенного интерфейса для тестирования - MockStub 18
  13. Решение https://github.com/s7techlab/cckit Chancode Kit • Маршрутизация (routing) обращений к функциям

    • Контекст обращения к функции чейнкода • Функции промежуточной обработки (middleware) • Конвертация структур данных / маппинг ключей • Средства отладки и логирования чейнкодов • Расширенная реализация MockStub 19
  14. Проблема #2 и её решение https://github.com/s7techlab/hlf-sdk-go - собственный упрощённый SDK

    • Простые и понятные компоненты • Подключаемые discovery provider и crypto suite • Встроенные GRPC-метрики • Отдельный пакет для работы с Fabric CA 21
  15. Проблема #3 - мониторинг • Отсутствие метрик состояния узлов и

    сети (до версии 1.4) • Отсутствие встроенных алертов при критических ситуациях 23