Hyperledger Composer

Примечание: Hyperledger Composer был признан устаревшим в 2019 году и больше не поддерживается активно. Новые проекты должны использовать Hyperledger Fabric напрямую с его встроенным подходом к разработке chaincode. Эта статья сохранена для исторической справки.

Hyperledger Composer был инструментом с открытым исходным кодом, который позволял владельцам бизнеса, аналитикам, системным интеграторам и разработчикам создавать блокчейн-приложения и смарт-контракты, направленные на решение бизнес-проблем. Разработанный в рамках проекта Hyperledger от Linux Foundation, это был набор высокоуровневых инструментов, предназначенных для построения блокчейн-бизнес-сетей в Hyperledger Fabric.

Hyperledger Composer особенно полезен, потому что он ускоряет процесс разработки и упрощает создание смарт-контрактов, которые являются цифровыми контрактами с самоисполнением, условия соглашения в которых записаны непосредственно в коде. Hyperledger Composer значительно снизил барьеры входа для разработки блокчейн-приложений.

Ключевые особенности Hyperledger Composer

  1. Язык моделирования:
    • Hyperledger Composer использует язык моделирования для определения структуры бизнес-сети, включая активы, участников и транзакции. Язык прост для понимания и позволяет разработчикам описывать логику блокчейна в манере, которая тесно напоминает бизнес-язык.
  2. Архив бизнес-сети:
    • Пользователи могут развернуть архив бизнес-сети (BNA), который является пакетом, содержащим все необходимые файлы для бизнес-сети. Это включает файлы моделей (.cto), файлы скриптов (.js), файлы контроля доступа (.acl) и файлы запросов (.qry).
  3. Интеграция с Hyperledger Fabric:
    • Hyperledger Composer обеспечивает бесшовную интеграцию с Hyperledger Fabric. После разработки бизнес-сеть может быть развернута на Hyperledger Fabric, что позволяет использовать её надежные механизмы консенсуса и функции безопасности.
  4. Тестирование:
    • Hyperledger Composer включает инструменты для тестирования блокчейн-приложений. Разработчики могут писать модульные тесты для бизнес-логики и сквозные тесты для всей бизнес-сети.
  5. Генерация REST API:
    • Одним из значительных преимуществ Hyperledger Composer является его автоматическая генерация REST API из определенной модели бизнес-сети. Это позволяет легко интегрироваться с существующими системами и дает фронтенд-приложениям возможность взаимодействовать с блокчейном без необходимости обрабатывать сложные блокчейн-транзакции.
  6. Интерфейс командной строки (CLI):
    • Hyperledger Composer предлагает мощный инструмент CLI, который позволяет разработчикам взаимодействовать с бизнес-сетью. CLI можно использовать для развертывания, тестирования и управления бизнес-сетью, а также для взаимодействия с реестром блокчейна.
  7. Гибкое развертывание:
    • Hyperledger Composer обеспечивает гибкость развертывания бизнес-сетей на различных инфраструктурах, включая локальные машины, облака или как часть кластера Kubernetes. Эта адаптивность гарантирует, что он соответствует различным организационным потребностям.

Компоненты Hyperledger Composer

Определение бизнес-сети

Определение бизнес-сети (BND) в Hyperledger Composer — это пакет, который определяет декларативные и программные компоненты бизнес-сети. Каждое BND обычно состоит из нескольких файлов, включая:

Язык моделирования Composer

Язык моделирования в Hyperledger Composer имеет решающее значение для определения элементов бизнес-сети. Он позволяет пользователям описывать:

Composer Playground

Composer Playground — это веб-интерфейс, который позволяет пользователям моделировать, определять и тестировать свои бизнес-сети без необходимости в обширной настройке. Он предоставляет удобную среду для создания BND, управления идентификациями и симуляции транзакций.

Интеграция с Fabric

Hyperledger Composer использует Hyperledger Fabric в качестве базовой блокчейн-платформы, которая обеспечивает модульную архитектуру для решений распределенного реестра. Интеграция включает бесшовное развертывание BND в сети Fabric, используя надежные функции Fabric, такие как механизмы консенсуса, каналы, MSP (поставщик услуг членства) и многое другое.

Разработка приложения Hyperledger Composer

Пошаговое руководство

  1. Настройка среды разработки:
    • Установите предварительные требования, включая Node.js, npm и Docker.
    • Установите инструменты CLI Hyperledger Composer, используя npm.
       npm install -g generator-hyperledger-composer
      
  2. Создание бизнес-сети:
    • Используйте генератор Yeoman для создания определения бизнес-сети.
       yo hyperledger-composer:businessnetwork
      
  3. Определение моделей:
    • Создайте файлы .cto для определения участников, активов и транзакций. ```plaintext // Пример файла модели (models/org.example.basic.cto) namespace org.example.basic

asset SampleAsset identified by assetId { o String value }

participant SampleParticipant identified by participantId { }

transaction SampleTransaction { –> SampleAsset asset }


4. **Реализация логики:**
 - Напишите функции обработчика транзакций в файлах `.js`.
 ```javascript
 // Пример файла скрипта (lib/logic.js)
 /**
 * Пример функции обработчика транзакций
 * @param {org.example.basic.SampleTransaction} tx - пример транзакции
 * @transaction
 */
 async function sampleTransaction(tx) {
 tx.asset.value = tx.newValue;
 let assetRegistry = await getAssetRegistry('org.example.basic.SampleAsset');
 await assetRegistry.update(tx.asset);
 }
  1. Определение контроля доступа:
    • Создайте файлы .acl для управления разрешениями.
       // Пример файла контроля доступа (permissions.acl)
       rule ParticipantAccess {
       description: "Разрешить всем участникам читать все активы"
       participant: "org.example.basic.SampleParticipant"
       operation: READ
       resource: "org.example.basic.*"
       action: ALLOW
       }
      
  2. Развертывание бизнес-сети:
    • Упакуйте сеть и разверните её на Hyperledger Fabric.
       composer archive create --sourceType dir --sourceName.
       composer network install --card PeerAdmin@hlfv1 --archiveFile <network-name>.bna
       composer network start --networkName <network-name> --networkVersion 0.0.1 --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw
      
  3. Запуск сервера REST API:
    • Сгенерируйте и запустите сервер REST API для взаимодействия с бизнес-сетью.
       composer-rest-server -c admin@<network-name> -n always -u true -w true
      
  4. Тестирование и итерация:
    • Проведите тесты с использованием Composer Playground или Postman для симуляции транзакций и проверки бизнес-логики.

Преимущества использования Hyperledger Composer

Быстрая разработка

Hyperledger Composer позволяет быстрое и эффективное развитие блокчейн-приложений, предоставляя высокоуровневые абстракции и инструменты, которые абстрагируют многие низкоуровневые детали. Этот быстрый цикл разработки означает, что предприятия могут прототипировать, тестировать и итерировать решения быстрее.

Упрощенное моделирование

С помощью языка моделирования Composer определение структуры и поведения блокчейн-приложений становится простым и интуитивным, позволяя бизнес-аналитикам и разработчикам сотрудничать более эффективно.

Сильная интеграция с корпоративными системами

Способность инструмента автоматически генерировать REST API из определенной бизнес-сети упрощает интеграцию блокчейн-приложений с существующими корпоративными системами и фронтенд-приложениями, способствуя совместимости и расширяемости.

Гибкие варианты развертывания

Hyperledger Composer поддерживает различные варианты развертывания, начиная от локальных сред разработки до облачной инфраструктуры и кластеров Kubernetes, гарантируя, что решения могут масштабироваться в соответствии с бизнес-потребностями.

Сообщество и поддержка

Будучи частью проекта Hyperledger под эгидой Linux Foundation, Hyperledger Composer извлекает выгоду из сильного сообщества, обильных ресурсов и регулярных обновлений, гарантируя, что он остается надежным и передовым инструментом для разработки блокчейна.

Проблемы и ограничения

Несмотря на свои надежные функции, Hyperledger Composer имеет определенные ограничения:

  1. Зависимость от Hyperledger Fabric: Hyperledger Composer тесно связан с Hyperledger Fabric, что может быть не идеально для всех типов блокчейн-случаев использования.
  2. Кривая обучения: Хотя инструмент абстрагирует многие сложности, остается кривая обучения, связанная с пониманием функциональности и лучших практик как Composer, так и Fabric.
  3. Переход на язык транзакций Fabric: С переходом фокуса на встроенные возможности Fabric набор инструментов Composer может получать меньше внимания в будущих разработках.

Заключение

Hyperledger Composer — это новаторский инструмент, который ускоряет разработку блокчейн-решений, предоставляя высокоуровневые абстракции и инструменты, адаптированные для бизнес-приложений. Его сильная интеграция с Hyperledger Fabric, всеобъемлющий язык моделирования и способность генерировать REST API делают его бесценным активом для предприятий, стремящихся эффективно использовать технологию блокчейн. Несмотря на некоторые ограничения, его преимущества в быстрой разработке, упрощенном моделировании и гибком развертывании создают значительную ценность для бизнеса.