sendTransaction Сбой, когда он вызывается после простоя сети в течение 15-20 минут - PullRequest
0 голосов
/ 19 января 2019

У меня есть сеть фабрики гиперледжеров, развернутая в GCP.Я использую узел ткани SDK для связи с сетью.

Когда между sdk и сетью нет активности, Если я пытаюсь вызвать цепной код, произойдет сбой вызова API при sendTransaction для Заказчика с журналами ниже.

error: [Orderer.js]:sendBroadcast - при ошибке: «Ошибка: 14 НЕДОСТУПЕН: сбой чтения TCP \ n при createStatusError (/usr/src/app/node_modules/grpc/src/client.js:64:15)\n в ClientDuplexStream._emitStatusIfDone (/ usr /src / app / node_modules / grpc / src / client.js: 270: 19) \ n в ClientDuplexStream._receiveStatus (/usr/src/app/node_modules/grpc/src/client.js:248:8)\n at /usr / src / app / node_modules / grpc / src / client.js: 804: 12 "Запрос не выполнен: POST / channel / stanfinandcredth / chaincodes / sc1547746253: Ошибка SERVICE_UNAVAILABLE: SERVICE_UNAVAILABLE в ClientDuplexStream.(/usr/src/app/node_modules/fabric-client/lib/Orderer.js:136:21) в emitOne (events.js: 116: 13) в ClientDuplexStream.emit (events.js: 211: 7) в ClientDuplexStream._emitStatusIfDone (/usr/src/app/node_modules/grpc/src/client.js:271:12) в ClientDuplexStream._receiveStatus (/usr/src/app/node_modules/grpc/src/client.j:24)в /usr/src/app/node_modules/grpc/src/client.js:804:12 Ошибка: SERVICE_UNAVAILABLE в ClientDuplexStream.(/usr/src/app/node_modules/fabric-client/lib/Orderer.js:136:21) в emitOne (events.js: 116: 13) в ClientDuplexStream.emit (events.js: 211: 7) в ClientDuplexStream._emitStatusIfDone (/usr/src/app/node_modules/grpc/src/client.js:271:12) в ClientDuplexStream._receiveStatus (/usr/src/app/node_modules/grpc/src/client.j:24)в /usr/src/app/node_modules/grpc/src/client.js:804:12

Кажется, что SDK не может связаться с Orderer.Непосредственный следующий запрос вызова успешно завершен.это происходит каждый раз после 15 минут простоя.

Я попытался установить тайм-ауты grpc для соединения, но, похоже, это не помогло.

1 Ответ

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

Вероятно, что незанятые соединения разрываются GCP.Вам необходимо установить параметры поддержки активности gRPC для вашего клиента.Что-то вроде:

    "connection-options": {
        "grpc.max_receive_message_length": -1,
        "grpc.max_send_message_length": -1,
        "grpc.keepalive_time_ms": 120000, 
        "grpc.http2.min_time_between_pings_ms": 120000, 
        "grpc.keepalive_timeout_ms": 20000, 
        "grpc.http2.max_pings_without_data": 0, 
        "grpc.keepalive_permit_without_calls": 1 
    }

См. https://fabric -sdk-node.github.io / release-1.4 / tutorial-grpc-settings.html для получения подробной информации об их настройке с использованием узлаSDK

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