Разверните и предоставьте цепной код в виде REST API на управляемой Amazon блокчейне Hyperledger 1.2. - PullRequest
0 голосов
/ 20 января 2019

Я настроил настройку управляемой цепочки блоков Amazon с помощью Hyperledger 1.2.Сеть подготовлена ​​с одним участником и одним равноправным узлом.Настройка клиента Hyperledger Fabric осуществляется с помощью Golang 1.10.3.Я установил пример цепочки кодов mycc Instantiated, Queried and Invoked, приведенный в руководстве по AWS.Который работает отлично.Полное упражнение было выполнено по этой ссылке.

Я хочу развернуть и выставить код цепи как REST API.Существует пример проекта Amazon Managed Blockchain Workshop .Они использовали RESTful API, работающий как приложение Node.js Express, используя SDK клиента Hyperledger Fabric для запроса и вызова цепного кода.Я хочу запустить пример некоммерческого цепного кода на Hyperledger Fabric Client, подготовленном для управляемой AWS Blockchain Hyper Ledger 1.2

. Я выполнил следующие шаги:

Вот шаги какЯ запускаю и тестирую REST API.

cd ~/non-profit-blockchain/ngo-rest-api
nvm use lts/carbon
node app.js &

Если я выполню Зарегистрировать / зарегистрировать запрос пользователя

curl -s -X POST http://localhost:3000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=john&orgName=Org1'

Вместо отображения: response:

{"success": true, "secret": "", "message": "michael успешно зарегистрирован"}

Ниже показано сообщение об ошибке.

{"success": false, "message": "fail: ошибка: отсутствует параметр mspid"}

Я также пытался добавить mspid в запрос, носообщение об ошибке все та же.Чего мне не хватает?

Вот содержимое ngo-connection-profile.yaml

<code>channels:
  mychannel:
    orderers:
      - orderer.com
    peers:
      peer1:
        endorsingPeer: true
        chaincodeQuery: true
        ledgerQuery: true
        eventSource: true
<pre><code>
organizations:
  Org1:
    mspid:
    peers:
      - peer1
    certificateAuthorities:
      - ca-org1
orderers:
  orderer.com:
    url: grpcs://orderer.n-XDXDXDXDXDSXDSXDXSDXSDXDSXDSXDS.managedblockchain.us-east-1.amazonaws.com:30001
    grpcOptions:
      ssl-target-name-override: orderer.n-XDXDXDXDXDSXDSXDXSDXSDXDSXDSXDS.managedblockchain.us-east-1.amazonaws.com
    tlsCACerts:
      path: /opt/home/managedblockchain-tls-chain.pem
peers: peer1: url: grpcs: //nd-NDNDNDNDNDNDNDNDNDNDND.m-AAAAAAAAAAAAAAAAAAAAAAAAAAn-XDXDXDXDXDSXDSXDXSDXSDXDSXDSXDS .... eventUrl: grpcs: //nd-NDNDNDNDNDNDNDNDNDNDND.m-AAAAAAAAAAAAAAAAAAAAAAAAA.n-XDXDXDXDXDSXDSXDXSDXSDXDSXDSXDS ..... grpcOptions: имя-SSL-мишени переопределения: й-NDNDNDNDNDNDNDNDNDNDND.m-AAAAAAAAAAAAAAAAAAAAAAAAA.n-XDXDXDXDXDSXDSXDXSDXSDXDSXDSXDS.xxx tlsCACerts: путь: /opt/home/managedblockchain-tls-chain.pem certificateAuthorities: ca-org1: url: https://ca.m -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.A-XDXDXDXDXDSXDS: oDXSDXDXDXDXDXDXSXThome / managedblockchain-tls-chain.pem регистратор: - enrollId: aaaaaaaa enrollSecret: XXXXXXXXXXX имя: m-AAAAAAAAAAAAAAAAAAAAAAAAAA

1 Ответ

0 голосов
/ 20 января 2019

Я также изучаю Amazon Managed Blockchain, хотя его в предварительном просмотре.Надеюсь, я смогу помочь вам в вашем вопросе.mspid не является параметром для отправки в запросе.Похоже, что вы что-то упустили в файле конфигурации.Можете ли вы выслать мне содержимое файла конфигурации ниже?

<code>cat ~/non-profit-blockchain/tmp/connection-profile/ngo-connection-profile.yaml

При просмотре содержимого файла конфигурации очевидно, что в файле конфигурации отсутствует значение mspid.Идентификатор поставщиков услуг членства (MSP) является обязательным значением, которое должно быть установлено в конфигурации.Вы также можете подтвердить это с помощью команды ниже.

<code>cat ~/non-profit-blockchain/tmp/connection-profile/ngo-connection-profile.yaml | grep mspid:
Если он показывает пустое значение, вам нужно установить mspid в файле конфигурации.Убедитесь, что переменные среды, указанные в
<code>~/non-profit-blockchain/ngo-fabric/fabric-exports.sh
, установлены правильно.Если этот файл отсутствует, используйте
<code>~/non-profit-blockchain/ngo-fabric/templates/exports-template.sh
. Вам необходимо установить значение переменной среды $ {MEMBERID} в mspid в ngo-connection-profile.yaml, также посмотрите, отсутствует ли какое-либо другое обязательное значение поля в конфигурациифайл.Вы также можете увидеть детали значений, которые необходимо заменить в файле конфигурации, из сценария ниже.
<code>~/non-profit-blockchain/ngo-rest-api/connection-profile/gen-connection-profile.sh
.Позвольте мне перечислить их.
<code>
sed -i "s|%PEERNODEID%|$PEERNODEID|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%MEMBERID%|$MEMBERID|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%CAFILE%|$LOCALCA|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%ORDERINGSERVICEENDPOINT%|$ORDERINGSERVICEENDPOINT|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%ORDERINGSERVICEENDPOINTNOPORT%|$ORDERINGSERVICEENDPOINTNOPORT|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%PEERSERVICEENDPOINT%|$PEERSERVICEENDPOINT|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%PEERSERVICEENDPOINTNOPORT%|$PEERSERVICEENDPOINTNOPORT|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%PEEREVENTENDPOINT%|$PEEREVENTENDPOINT|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%CASERVICEENDPOINT%|$CASERVICEENDPOINT|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%ADMINUSER%|$ADMINUSER|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml
sed -i "s|%ADMINPWD%|$ADMINPWD|g" $REPODIR/tmp/connection-profile/ngo-connection-profile.yaml

После установки значений и проверки остановите узел или завершите процесс, запущенный на порте 3000, и снова запустите узел.cd ~ / некоммерческий блокчейн / ngo-rest-api

<code>nvm use lts/carbon
node app.js &
...