Блокчейн IBM - Простое приложение - PullRequest
0 голосов
/ 13 февраля 2019

Хорошо, мне нужно разработать простое приложение в блокчейне IBM (стартовый план).Но я не могу сделать это после почти 1 месяца проб и ошибок и тысяч учебников.Итак, мой случай очень прост (наверное): у меня есть файл models.cto:

namespace com.test.models

/**
 * A company asset.
 */
asset Company identified by company_id {
  o String company_id
  o String document_key
  o String document_value
  o String name
  o String telephone
  o String email
}

/**
 * A person_in_charge asset.
 */
asset PersonInCharge identified by person_in_charge_id {
  o String person_in_charge_id
  o String company_id
  o String name
  o String document_key
  o String document_value
  o String email
  o String language
  o String created_date_time
}

Я попытался сделать его участником.Я пытался совершить транзакцию, а затем сделать что-то с файлом .js, но есть только примеры использования и учебные пособия по сложным примерам с использованием ресурсов, участников и т. Д. Я просто хочу вставить «PersonInCharge» и «Company» отдельно и запросить (каждая компания илипо идентификатору, что угодно) также отдельно.

Я смог сделать пример, используя генератор Swagger API, но он не сработал, как ожидалось, даже подумал, что он создал все методы, которые я хотел, например:

desired api generated

Подводя итог, я хотел развернуть мой цепной код в одноранговом узле внутри канала в IBM Blockchain.Я развернул мраморный пример, и он отлично работал.

Действительно самоописывающая ошибка, а не с общим сообщением:

desired api generated

Я следую "как"«Руководство по локальной разработке и развертыванию в IBM.Поэтому я создаю файл bna composer archive create -t dir -n ., а затем создаю карту с загруженными настройками соединения (от IBM), а затем использую этот учебник Развертывание бизнес-сети в Starter Plan , и на этом шаге происходит сбой: composer network start -c adminCard -n bna-blockchain -V 0.0.1 -A admin -C ./credentials/admin-pub.pem -f delete_me.card.возможно, из-за того, что я не могу создать экземпляр моего цепного кода в IBM Blockchain.

Извините, если это выглядит смешно, просто спросите меня, если у вас есть какие-либо вопросы по моей проблеме.

Заранее спасибо илюбая помощь будет потрясающей!

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Я взял паузу в разработке и вернулся через месяц.В то время мне помогал человек из IBM, который мог бы помочь мне сделать это.

И я здесь, так что отметьте, некоторые ошибки тоже.

Парень из IBM (Я не буду называть его имя, конечно) Сам сказал, что служба загрузки цепного кода (channel / chaincode / Install chaincode) не работает и не работает должным образом.Кроме того, я задал простой вопрос на платном форуме IBM Blockchain, но мне не помогли (они даже не ответили на вопрос), даже спустя почти 3 месяца.И вы не можете найти учебник (кроме образцов мрамора), который бы работал от начала и до конца.

Извините, если мне кажется, что я зря здесь, но мне было очень тяжело поставить еговсе вместе, чтобы работать на 100%.

Я не буду показывать, как создать файл модели или транзакционные сценарии (потому что в примерах их много), но команды, которые необходимо выполнить для запуска цепного кодана IBM и создать петлевой API.С учетом сказанного ...

Перейдем к тому, что важно: код

Перво-наперво, Настройки среды:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial

ВАЖНО: IBM Blockchain (до сих пор 2019-03-23) не будет работать на виртуализированных машинах, таких как виртуальный ящик или гипервизор, из-за пары зависимостей npm .Но аппаратная виртуальная машина (HVM), такая как Amazon, подойдет.

STEPS

Установите узел и npm (строго следуйте перечисленным версиям)

node -v
v8.15.1

npm -v
6.4.1

curl -O https://hyperledger.github.io/composer/unstable/prereqs-ubuntu.sh
chmod u+x prereqs-ubuntu.sh
./prereqs-ubuntu.sh

npm install -g --unsafe-perm composer-cli@0.20.5
npm install -g --unsafe-perm composer-rest-server@0.20.5

composer-rest-server -v
v0.20.5

composer -v
v0.20.5

Создайте проект, используя hyperledger composer-plays .Экспортируйте его и перейдите в корневой каталог проекта, который вы только что загрузили (проект также может быть разработан локально).

Загрузите файл параметров подключения в IBM Blockchain (Обзор / Профиль подключения / Загрузить) и назовите его какconnection-profile.json.Найдите узел registrar, вы будете использовать его для создания карт.

Запустите npm install.Если что-то пойдет не так при установке зависимостей, проверьте, используете ли вы точно те же версии, что и я.Если нет, удалите все и начните заново с начала.

хитрая зона

composer card create -f ca.card -p connection-profile.json -u admin -s *your-password*

composer card import -f ca.card -c ca

composer identity request --card ca --path ./credentials -u admin -s *your-password*

Вы увидите, что папка учетных данных сгенерирована.Внутри этой папки найдите файл admin-pub.pem (credentials / admin-pub.pem), скопируйте весь его контент и затем загрузите его в IBM Blockchain (Участники / Сертификаты / Добавить сертификат).Вам будет предложено перезапустить одноранговые узлы, нажмите «да»

После того, как одноранговые узлы вернутся в оперативный режим, на той же вкладке «Сертификаты» найдите только что добавленный сертификат, в столбце «ДЕЙСТВИЯ» щелкните меню, а затемвыберите опцию «Сертификат синхронизации».

 composer archive create -t dir -n .


 composer card create -f adminCard.card -p connection-profile.json -u admin -c ./credentials/admin-pub.pem -k ./credentials/admin-priv.pem --role PeerAdmin --role ChannelAdmin

 composer card import -f ./adminCard.card  -c  adminCard


 composer network install -c adminCard -a bna-name@version.bna



 composer network start -c adminCard -n *bna-name* -V *bna-version* -A admin -C ./credentials/admin-pub.pem -f delete_me.card (Output: Successfully created business network card: Filename: delete_me.card)

 composer card create -n *bna-name* -p connection-profile.json -u admin -c ./credentials/admin-pub.pem -k ./credentials/admin-priv.pem (Output file: admin@*bna-name*.card)

 composer card import -f ./admin@*bna-name*.card (Card file: ./admin@*bna-name*.card Card name: admin@*bna-name*)

Теперь вы сгенерируете остальные API, используя (автоматически генерируемые с помощью сваггера)

 composer-rest-server -c admin@*bna-name* -n never -w true -p 8080

Наслаждайтесь!

0 голосов
/ 27 февраля 2019

Перед запуском сети необходимо ее установить:

composer network install -c adminCard -a vehicle-manufacture-network.bna
...