Обновление главной книги Hyperledger Fabric - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь получить первое демо «Написание вашего первого приложения» https://hyperledger -fabric.readthedocs.io / en / release-1.2 / write_first_app.html в Hyperledger Fabric.Я успешно запустил часть запроса (queryAllCars и queryCar методы).У меня есть проблема в части обновления книги.Вот что я делаю:

  1. Поместите значения в файл invoke.js:

    var request = {
    //targets: let default to the peer assigned to the client
    chaincodeId: 'fabcar',
    fcn: 'createCar',
    args: ['CAR10', 'Chevy', 'Volt', 'Red', 'Nick'],
    chainId: 'mychannel',
    txId: tx_id};
    
  2. Запустите узел invoke.js и войдите в терминал:

Путь к хранилищу: / home / krystian / тест на наличие гиперссылок / образцы тканей / fabcar / hfc-key-store

успешно загруженный пользователь1 из персистентности

1021 * Назначение TRANSACTION_ID: 0dfca05d6f19187275c6a31febc81429ddca3a284fd590c631961a10f8da5aee
1023 * предложение сделка была хорошо
1025 * Успешно отправлено предложение и получил ProposalResponse: Статус - 200, сообщение - ""
1027 *
Не удалось вызвать успешно :: Ошибка: возникла проблема с концентратором событий :: 14 НЕДОСТУПНО: Ошибка записи TCP
at createStatusError (/home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:64:15)
at ClientDuplexStream._emitStatusIfDone (/home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:270:19)
at ClientDuplexStream._receiveStatus (/home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:248:8)
at /home/krystian/hyperledger-test/fabric-samples/fabcar/node_modules/fabric-client/node_modules/grpc/src/client.js:804:12

Это мой package.json

{
"name": "fabcar",
"version": "1.0.0",
"description": "Hyperledger Fabric Car Sample Application",
"main": "fabcar.js",
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
    "fabric-ca-client": "^1.2.1",
    "fabric-client": "^1.2.1",
    "grpc": "^1.15.1"
},
"author": "Anthony O'Dowd",
"license": "Apache-2.0",
"keywords": [
    "Hyperledger",
    "Fabric",
    "Car",
    "Sample",
    "Application"
]

}

Это часть invoke.js, в которой происходит сбой:

        let event_hub = fabric_client.newEventHub();

    event_hub.setPeerAddr('grpc://localhost:7053');

    // using resolve the promise so that result status may be processed
    // under the then clause rather than having the catch clause process
    // the status
    let txPromise = new Promise((resolve, reject) => {
        let handle = setTimeout(() => {
            event_hub.disconnect();
            resolve({event_status : 'TIMEOUT'}); //we could use reject(new Error('Trnasaction did not complete within 30 seconds'));
        }, 3000);
        **event_hub.connect();
        event_hub.registerTxEvent(transaction_id_string, (tx, code) => {
            // this is the callback for transaction event status
            // first some clean up of event listener
            clearTimeout(handle);
            event_hub.unregisterTxEvent(transaction_id_string);**
            event_hub.disconnect();

Я пытался удалить fabcar/ node_modules и снова запустить npm install.Я также попытался запустить sudo node invoke.js.Я закончил урок Построение вашей первой сети, и все было в порядке.

Версия узла v8.9.0

Версия NPM 5.5.1

Я использую Linux Mint

Где может быть проблема с обновлением регистра, когда метод initLedger и запросы работают без проблем?

1 Ответ

0 голосов
/ 23 октября 2018

Я снова получаю эту ошибку и наконец-то решил ее.Это было несоответствие в версии GRPC.Раньше у меня была сеть Hyperledger Fabric v1.3.0, использующая grpc@1.14.2, и мое клиентское приложение установило в файле package.json v.1.1.0 Fabric-client и v1.6.6 grpc.

После того, как я исправил это, я получаю другую ошибку:

Не удалось успешно вызвать :: TypeError: fabric_client.newEventHub не является функцией

Но эта ошибка решается здесь: невозможно найти функцию newEventHub .

Поэтому, если у вас возникла та же проблема, вы должны использовать одну и ту же версию пакетов в сети и в клиентском приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...