На основе 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.