На основе IBM developerWorks
Среда разработки
npm version 6.2.0 node version 8.9.1 composer-cli version v0.19.12 composer-rest-server version 0.19.12 generator-hyperledger-composer version 0.19.12 yo version 2.05
Шаг 1. Установите инструменты интерфейса командной строки.
Есть несколько полезных инструментов CLI для разработчиков Composer. Самый важный - composer-cli
, который содержит все основные операции, поэтому мы сначала установим его. Затем мы также возьмем generator-hyperledger-composer
, composer-rest-server
и Yeoman
плюс generator-hyperledger-composer
. Эти последние 3 не являются основными частями среды разработки, но они будут полезны, если вы следуете руководствам или разрабатываете приложения, которые взаимодействуют с вашей бизнес-сетью, поэтому мы установим их сейчас.
Откройте для себя и ознакомьтесь с лучшим программным обеспечением Blockchain
Обратите внимание, что вы не должны использовать su
или sudo
для следующих команд npm.
Основные инструменты интерфейса командной строки:
npm install -g composer-cli
Утилита для запуска REST-сервера на вашем компьютере, чтобы представить ваши бизнес-сети как RESTful API:
npm install -g composer-rest-server
Полезная утилита для генерации активов приложения:
npm install -g generator-hyperledger-composer
Yeoman - это инструмент для создания приложений, который использует generator-hyperledger-composer
:
npm install -g yo
Шаг 2: Установите Playground
Если вы уже пробовали Composer в Интернете, вы уже видели приложение для браузера Playground. Вы также можете запустить это локально на своей машине разработки, предоставив вам пользовательский интерфейс для просмотра и демонстрации ваших бизнес-сетей.
Приложение-браузер для простого редактирования и тестирования Business Networks:
npm install -g composer-playground
Шаг 3. Настройте IDE
Хотя приложение браузера можно использовать для работы с кодом вашей бизнес-сети, большинство пользователей предпочтут работать в среде IDE. Наш фаворит - VSCode
, потому что доступно расширение Composer.
Установите VSCode с этого URL: https://code.visualstudio.com/download
Откройте VSCode, перейдите в раздел «Расширения», затем найдите и установите расширение Hyperledger Composer
из Marketplace.
Шаг 4: Установите Hyperledger Fabric
Этот шаг дает вам локальную среду выполнения Hyperledger Fabric для развертывания ваших бизнес-сетей.
В каталоге по вашему выбору (мы предположим ~/fabric-dev-servers
) получите файл .tar.gz
, содержащий инструменты для установки Hyperledger Fabric:
mkdir ~/fabric-dev-servers && cd ~/fabric-dev-servers
curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
tar -xvf fabric-dev-servers.tar.gz
Если вы предпочитаете, также доступен zip
: просто замените .tar.gz
файл на fabric-dev-servers.zip
, а команду tar -xvf
на команду unzip
в предыдущем фрагменте.
Используйте только что загруженные и извлеченные сценарии, чтобы загрузить локальную среду выполнения Hyperledger Fabric:
cd ~/fabric-dev-servers ./downloadFabric.sh
Ваша сеть
Шаг 1. Создание структуры бизнес-сети
Создайте каркас бизнес-сети с помощью Yeoman. Для этой команды потребуется название бизнес-сети, описание, имя автора, адрес электронной почты автора, выбор лицензии и пространство имен.
yo hyperledger-composer:businessnetwork
Введите tutorial-network
в качестве имени сети и желаемую информацию для описания, имени автора и электронной почты автора.
Выберите Apache-2.0
в качестве лицензии.
Выберите org.example.mynetwork
в качестве пространства имен.
Выберите No
, когда вас спросят, создавать ли пустую сеть или нет.
Шаг 2. Определение бизнес-сети
Деловая сеть состоит из активов, участников, транзакций, правил контроля доступа и, возможно, событий и запросов. В скелетной бизнес-сети, созданной на предыдущих шагах, есть файл модели (.cto
), который будет содержать определения классов для всех активов, участников и транзакций в бизнес-сети. Каркас бизнес-сети также содержит документ управления доступом (permissions.acl
) с основными правилами управления доступом, файл сценария (logic.js
), содержащий функции процессора транзакций, и файл package.json
, содержащий метаданные бизнес-сети.
Моделирование активов, участников и транзакций
Первым обновленным документом является файл модели (.cto
). Этот файл написан с использованием языка моделирования Hyperledger Composer Modeling Language. Файл модели содержит определения каждого класса активов, транзакции, участника и события. Он неявно расширяет системную модель Hyperledger Composer, описанную в документации по языку моделирования.
Откройте файл модели org.example.mynetwork.cto
.
Замените содержимое следующим:
/**
* My commodity trading network
*/
namespace org.example.mynetwork
asset Commodity identified by tradingSymbol {
o String tradingSymbol
o String description
o String mainExchange
o Double quantity
--> Trader owner
}
participant Trader identified by tradeId {
o String tradeId
o String firstName
o String lastName
}
transaction Trade {
--> Commodity commodity
--> Trader newOwner
}
Сохраните изменения в org.example.mynetwork.cto
.
Добавление логики транзакции JavaScript
В файле модели была определена Trade
транзакция с указанием отношения к активу и участнику. Файл функции процессора транзакций содержит логику JavaScript для выполнения транзакций, определенных в файле модели.
Транзакция Trade
предназначена для простого принятия идентификатора торгуемого Commodity
актива и идентификатора Trader
участника, который устанавливается в качестве нового владельца.
Откройте файл сценария logic.js
.
Замените содержимое следующим:
/**
* Track the trade of a commodity from one trader to another
* @param {org.example.mynetwork.Trade} trade - the trade to be processed
* @transaction
*/
async function tradeCommodity(trade) {
trade.commodity.owner = trade.newOwner;
let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');
await assetRegistry.update(trade.commodity);
}
Сохраните изменения в logic.js
.
Добавление контроля доступа
Замените в файле permissions.acl
следующие правила контроля доступа:
/**
* Access control rules for tutorial-network
*/
rule Default {
description: "Allow all participants access to all resources"
participant: "ANY"
operation: ALL
resource: "org.example.mynetwork.*"
action: ALLOW
}
rule SystemACL {
description: "System ACL to permit all access"
participant: "ANY"
operation: ALL
resource: "org.hyperledger.composer.system.**"
action: ALLOW
}
Сохраните изменения в permissions.acl
.
Шаг 3. Создайте архив бизнес-сети
Теперь, когда бизнес-сеть определена, ее нужно упаковать в файл развертываемого архива бизнес-сети (.bna
).
Используя командную строку, перейдите в каталог tutorial-network
.
В каталоге tutorial-network
выполните следующую команду:
composer archive create -t dir -n .
После выполнения команды в каталоге tutorial-network
был создан архивный файл бизнес-сети с именем [email protected]
.
Шаг 4. Развертывание бизнес-сети
После создания файла .bna
бизнес-сеть можно развернуть на экземпляре Hyperledger Fabric. Обычно информация от администратора Fabric требуется для создания PeerAdmin
идентификатора с привилегиями для установки чейнкода для однорангового узла, а также для запуска чейнкода на канале composerchannel
.
Скопируйте файл startFabric.sh, stopFabric.sh, _loader.sh, creatPeerAdminCard.sh, папку fabric-scripts из папки fabric-dev-servers в папку tutorial-network.
Выполните эти команды в обучающей сети:
./startFabric.sh
./createPeerAdminCard.sh
Развертывание бизнес-сети
Развертывание бизнес-сети в Hyperledger Fabric требует, чтобы бизнес-сеть Hyperledger Composer была установлена на одноранговом узле, затем можно запустить бизнес-сеть и создать нового участника, удостоверение личности и связанную карту, чтобы стать администратором сети. Наконец, для использования необходимо импортировать сетевую карту администратора сети, после чего можно проверить связь с сетью, чтобы убедиться, что она отвечает.
Чтобы установить бизнес-сеть, из каталога tutorial-network
выполните следующую команду:
composer network install --card PeerAdmin@hlfv1 --archiveFile [email protected]
Для команды composer network install
требуется сетевая карта для бизнеса PeerAdmin (в данном случае она была создана и импортирована заранее) и путь к файлу .bna
, который определяет бизнес-сеть.
Чтобы запустить бизнес-сеть, выполните следующую команду:
composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card
Для команды composer network start
требуется сетевая карта предприятия, а также имя администратора сети предприятия, имя и версия сети предприятия, а также имя файла, который должен быть создан и готов к импорту в качестве сетевой карты предприятия.
Чтобы импортировать удостоверение сетевого администратора в качестве используемой сетевой карты для бизнеса, выполните следующую команду:
composer card import --file networkadmin.card
Команде composer card import
для создания карты требуется имя файла, указанное в composer network start
.
Чтобы проверить, что бизнес-сеть была успешно развернута, выполните следующую команду, чтобы проверить связь с сетью:
composer network ping --card admin@tutorial-network
Я получил это как удачный результат
Для команды composer network ping
требуется сетевая карта предприятия для идентификации сети для проверки связи.
Чтобы запустить и протестировать с игровой площадкой, выполните команду
composer-playground
Шаг 5: Создание REST-сервера
Hyperledger Composer может сгенерировать индивидуальный REST API на основе бизнес-сети. Для разработки веб-приложений REST API предоставляет полезный уровень абстракции, не зависящей от языка.
Чтобы создать REST API, перейдите в каталог tutorial-network
и выполните следующую команду:
composer-rest-server
Введите admin@tutorial-network
в качестве имени карты.
На вопрос, следует ли использовать пространства имен в созданном API, выберите никогда не использовать пространства имен.
На вопрос, нужно ли защищать созданный API, выберите Нет.
На вопрос, разрешить ли публикацию событий, выберите Да.
На вопрос, следует ли включить безопасность TLS, выберите Нет.
Сгенерированный API подключается к развернутой цепочке блоков и бизнес-сети.
Вот результат
Вы можете поиграть с GET (для отображения информации) и POST (для создания новой информации)
Шаг 6: Создание приложения
Hyperledger Composer также может сгенерировать приложение Angular 4, работающее с REST API.
Чтобы создать приложение Angular 4, запустите шаг 5, откройте новый терминал, перейдите в каталог tutorial-network
и выполните следующую команду:
yo hyperledger-composer:angular
Выберите Да, когда вас попросят подключиться к действующей бизнес-сети.
Введите стандартные package.json
вопросы (название проекта, описание, имя автора, адрес электронной почты автора, лицензия)
Введите admin@tutorial-network
для сетевой карты предприятия.
Выберите Подключиться к существующему REST API.
Введите http://localhost
в качестве адреса сервера REST.
Введите 3000
в качестве порта сервера.
Выберите Пространства имен не используются.
Вот процесс
npm - Генератор Angular создаст основу для проекта и установит все зависимости. Чтобы запустить приложение, перейдите в каталог проекта angular и запустите npm start
. Это запустит приложение Angular 4, работающее с вашим REST API на http://localhost:4200
.