Hyperledger Composer
Примечание: Hyperledger Composer был признан устаревшим в 2019 году и больше не поддерживается активно. Новые проекты должны использовать Hyperledger Fabric напрямую с его встроенным подходом к разработке chaincode. Эта статья сохранена для исторической справки.
Hyperledger Composer был инструментом с открытым исходным кодом, который позволял владельцам бизнеса, аналитикам, системным интеграторам и разработчикам создавать блокчейн-приложения и смарт-контракты, направленные на решение бизнес-проблем. Разработанный в рамках проекта Hyperledger от Linux Foundation, это был набор высокоуровневых инструментов, предназначенных для построения блокчейн-бизнес-сетей в Hyperledger Fabric.
Hyperledger Composer особенно полезен, потому что он ускоряет процесс разработки и упрощает создание смарт-контрактов, которые являются цифровыми контрактами с самоисполнением, условия соглашения в которых записаны непосредственно в коде. Hyperledger Composer значительно снизил барьеры входа для разработки блокчейн-приложений.
Ключевые особенности Hyperledger Composer
- Язык моделирования:
- Hyperledger Composer использует язык моделирования для определения структуры бизнес-сети, включая активы, участников и транзакции. Язык прост для понимания и позволяет разработчикам описывать логику блокчейна в манере, которая тесно напоминает бизнес-язык.
- Архив бизнес-сети:
- Пользователи могут развернуть архив бизнес-сети (BNA), который является пакетом, содержащим все необходимые файлы для бизнес-сети. Это включает файлы моделей (.cto), файлы скриптов (.js), файлы контроля доступа (.acl) и файлы запросов (.qry).
- Интеграция с Hyperledger Fabric:
- Hyperledger Composer обеспечивает бесшовную интеграцию с Hyperledger Fabric. После разработки бизнес-сеть может быть развернута на Hyperledger Fabric, что позволяет использовать её надежные механизмы консенсуса и функции безопасности.
- Тестирование:
- Hyperledger Composer включает инструменты для тестирования блокчейн-приложений. Разработчики могут писать модульные тесты для бизнес-логики и сквозные тесты для всей бизнес-сети.
- Генерация REST API:
- Одним из значительных преимуществ Hyperledger Composer является его автоматическая генерация REST API из определенной модели бизнес-сети. Это позволяет легко интегрироваться с существующими системами и дает фронтенд-приложениям возможность взаимодействовать с блокчейном без необходимости обрабатывать сложные блокчейн-транзакции.
- Интерфейс командной строки (CLI):
- Hyperledger Composer предлагает мощный инструмент CLI, который позволяет разработчикам взаимодействовать с бизнес-сетью. CLI можно использовать для развертывания, тестирования и управления бизнес-сетью, а также для взаимодействия с реестром блокчейна.
- Гибкое развертывание:
- Hyperledger Composer обеспечивает гибкость развертывания бизнес-сетей на различных инфраструктурах, включая локальные машины, облака или как часть кластера Kubernetes. Эта адаптивность гарантирует, что он соответствует различным организационным потребностям.
Компоненты Hyperledger Composer
Определение бизнес-сети
Определение бизнес-сети (BND) в Hyperledger Composer — это пакет, который определяет декларативные и программные компоненты бизнес-сети. Каждое BND обычно состоит из нескольких файлов, включая:
-
Файлы моделей (.cto): Они определяют структуру бизнес-сети, описывая активы, участников, транзакции и отношения с использованием языка моделирования Composer.
-
Файлы скриптов (.js): Они содержат логику транзакций для бизнес-сети и написаны на JavaScript.
-
Файлы контроля доступа (.acl): Они указывают правила для разрешений и контроля доступа в бизнес-сети, определяя, кто может читать или писать в реестр.
-
Файлы запросов (.qry): Они определяют сложные запросы, которые могут быть выполнены в реестре блокчейна с использованием языка запросов Hyperledger Composer.
Язык моделирования Composer
Язык моделирования в Hyperledger Composer имеет решающее значение для определения элементов бизнес-сети. Он позволяет пользователям описывать:
-
Участники: Представляют лиц или организации, которые взаимодействуют с бизнес-сетью.
-
Активы: Представляют материальные или нематериальные объекты, которые отслеживает бизнес-сеть.
-
Транзакции: Определяют допустимые действия, которые могут происходить в бизнес-сети, влияя на активы и участников.
-
События: Механизмы уведомлений, которые могут быть испущены транзакциями и получены участниками.
Composer Playground
Composer Playground — это веб-интерфейс, который позволяет пользователям моделировать, определять и тестировать свои бизнес-сети без необходимости в обширной настройке. Он предоставляет удобную среду для создания BND, управления идентификациями и симуляции транзакций.
Интеграция с Fabric
Hyperledger Composer использует Hyperledger Fabric в качестве базовой блокчейн-платформы, которая обеспечивает модульную архитектуру для решений распределенного реестра. Интеграция включает бесшовное развертывание BND в сети Fabric, используя надежные функции Fabric, такие как механизмы консенсуса, каналы, MSP (поставщик услуг членства) и многое другое.
Разработка приложения Hyperledger Composer
Пошаговое руководство
- Настройка среды разработки:
- Установите предварительные требования, включая Node.js, npm и Docker.
- Установите инструменты CLI Hyperledger Composer, используя npm.
npm install -g generator-hyperledger-composer
- Создание бизнес-сети:
- Используйте генератор Yeoman для создания определения бизнес-сети.
yo hyperledger-composer:businessnetwork
- Используйте генератор Yeoman для создания определения бизнес-сети.
- Определение моделей:
- Создайте файлы
.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);
}
- Определение контроля доступа:
- Создайте файлы
.aclдля управления разрешениями.// Пример файла контроля доступа (permissions.acl) rule ParticipantAccess { description: "Разрешить всем участникам читать все активы" participant: "org.example.basic.SampleParticipant" operation: READ resource: "org.example.basic.*" action: ALLOW }
- Создайте файлы
- Развертывание бизнес-сети:
- Упакуйте сеть и разверните её на 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
- Упакуйте сеть и разверните её на Hyperledger Fabric.
- Запуск сервера REST API:
- Сгенерируйте и запустите сервер REST API для взаимодействия с бизнес-сетью.
composer-rest-server -c admin@<network-name> -n always -u true -w true
- Сгенерируйте и запустите сервер REST API для взаимодействия с бизнес-сетью.
- Тестирование и итерация:
- Проведите тесты с использованием Composer Playground или Postman для симуляции транзакций и проверки бизнес-логики.
Преимущества использования Hyperledger Composer
Быстрая разработка
Hyperledger Composer позволяет быстрое и эффективное развитие блокчейн-приложений, предоставляя высокоуровневые абстракции и инструменты, которые абстрагируют многие низкоуровневые детали. Этот быстрый цикл разработки означает, что предприятия могут прототипировать, тестировать и итерировать решения быстрее.
Упрощенное моделирование
С помощью языка моделирования Composer определение структуры и поведения блокчейн-приложений становится простым и интуитивным, позволяя бизнес-аналитикам и разработчикам сотрудничать более эффективно.
Сильная интеграция с корпоративными системами
Способность инструмента автоматически генерировать REST API из определенной бизнес-сети упрощает интеграцию блокчейн-приложений с существующими корпоративными системами и фронтенд-приложениями, способствуя совместимости и расширяемости.
Гибкие варианты развертывания
Hyperledger Composer поддерживает различные варианты развертывания, начиная от локальных сред разработки до облачной инфраструктуры и кластеров Kubernetes, гарантируя, что решения могут масштабироваться в соответствии с бизнес-потребностями.
Сообщество и поддержка
Будучи частью проекта Hyperledger под эгидой Linux Foundation, Hyperledger Composer извлекает выгоду из сильного сообщества, обильных ресурсов и регулярных обновлений, гарантируя, что он остается надежным и передовым инструментом для разработки блокчейна.
Проблемы и ограничения
Несмотря на свои надежные функции, Hyperledger Composer имеет определенные ограничения:
- Зависимость от Hyperledger Fabric: Hyperledger Composer тесно связан с Hyperledger Fabric, что может быть не идеально для всех типов блокчейн-случаев использования.
- Кривая обучения: Хотя инструмент абстрагирует многие сложности, остается кривая обучения, связанная с пониманием функциональности и лучших практик как Composer, так и Fabric.
- Переход на язык транзакций Fabric: С переходом фокуса на встроенные возможности Fabric набор инструментов Composer может получать меньше внимания в будущих разработках.
Заключение
Hyperledger Composer — это новаторский инструмент, который ускоряет разработку блокчейн-решений, предоставляя высокоуровневые абстракции и инструменты, адаптированные для бизнес-приложений. Его сильная интеграция с Hyperledger Fabric, всеобъемлющий язык моделирования и способность генерировать REST API делают его бесценным активом для предприятий, стремящихся эффективно использовать технологию блокчейн. Несмотря на некоторые ограничения, его преимущества в быстрой разработке, упрощенном моделировании и гибком развертывании создают значительную ценность для бизнеса.