В данной презентации рассмотрим следующие вопросы:
1. Зачем авиакомпании блокчейн?
2. Почему Hyperledger Fabric?
3. Какие у него плюсы и минусы?
4. S7 Techlab Opensource
5. Проблемы Fabric и их решение перед запуском в production
3. Блокчейн в авиации
Взаиморасчеты в агентской сети
Продажа авиабилетов и услуг
Взаиморасчеты при обслуживании самолетов
Топливо, наземное обслуживание
3
7. Трудности выбора: Hyperledger Fabric
● Двухфазный коммит
● Изоляция данных на основе каналов
● Идентификация на базе PKI
● Гибкая модель конфигурирования участников сети
(MSP)
● Продвинутая система настройки разрешений на
операции (policies)
● Единая кодовая база на Go
7
8. Hyperledger Fabric
• Linux Foundation
• Modular architecture
• Customizable and pluggable components
• Containerized smart-contracts (a.k.a chaincodes)
8
9. Основные компоненты сети
• Peer - подтверждает транзакции и хранит
актуальную версию данных
• Orderer - собирает транзакции в блоки и
гарантирует их доставку
• Client - формирует транзакции, подписывает
их у пиров и отправляет на orderer
9
10. Основные компоненты сети
• Channel - абстракция на базе сети для
обеспечения конфиденциальности
• Chaincode - обеспечивает доступ и изменение
данных в рамках канала
• Endorsement policy - политика одобрения
внесения изменения данных в рамках канала
10
13. Проблемы
● Отсутствие best practices при
разработке чейнкодов
● Отсутствие стабильного SDK
на Go
● Отсутствие нативного
мониторинга узлов сети
● Сложное изменение
конфигурации участников сети
13
15. Что такое чейнкод?
● Написан на Go, Java или JS
● Атрибуты уникальности: (название, путь до исходных файлов и версия)
● Запускается в виде Docker-контейнера
● Общается с пиром по протоколу GRPC
15
16. Проблема #1 - отсутствие best
practice при разработке чейнкодов
● Отсутствие нативного роутера внутри
чейнкода
16
18. ● Многократное дублирование кода в рамках
разработки смарт-контрактов
● Ограниченная функциональность встроенного
интерфейса для тестирования - MockStub
18
19. Решение
https://github.com/s7techlab/cckit Chancode Kit
• Маршрутизация (routing) обращений к функциям
• Контекст обращения к функции чейнкода
• Функции промежуточной обработки (middleware)
• Конвертация структур данных / маппинг ключей
• Средства отладки и логирования чейнкодов
• Расширенная реализация MockStub
19
21. Проблема #2 и её решение
https://github.com/s7techlab/hlf-sdk-go -
собственный упрощённый SDK
● Простые и понятные компоненты
● Подключаемые discovery provider и crypto suite
● Встроенные GRPC-метрики
● Отдельный пакет для работы с Fabric CA
21