Hyperledger Fabri c Ошибка - Попытка связаться с 2 пирами. Последняя ошибка: Ошибка: не удалось подключиться раньше срока - PullRequest
1 голос
/ 15 января 2020
  1. Я воспитываю 4 пира, используя byfn.sh.
  2. Все идет хорошо, и я вижу orderer, peers, CA nodes, et c. работающий в docker контейнерах
  3. Затем я использую специальное приложение сервисного уровня, которое использует Fabri c Node SDK для соединения с этой сетью.
  4. У меня нет проблем с установлением соединения с использованием byfn.sh сгенерированный сертификат TLS CA (/usr/local/src/test_env/hlf_scripts/first-network/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem)
  5. Вот docker сообщения журнала для звонка Gateway.getNetwork(“mychannel”):
2020-01-14 22:12:20.981 UTC [comm.grpc.server] 1 -> INFO 083 unary call completed grpc.service=discovery.Discovery grpc.method=Discover grpc.peer_address=192.168.80.1:38858 grpc.code=OK grpc.call_duration=515.21µs

2020-01-14 22:12:21.012 UTC [comm.grpc.server] 1 -> INFO 084 unary call completed grpc.service=discovery.Discovery grpc.method=Discover grpc.peer_address=192.168.80.1:38858 grpc.code=OK grpc.call_duration=552.801µs
Затем я вызываю другое клиентское приложение, которое использует почти такой же код для управления сетью. Первым шагом здесь является обеспечение того, что идентификация пользователя (в данном случае администратора) существует и может быть импортирована в кошелек. Один и тот же фрагмент кода используется для создания этого идентификатора и использует тот же профиль подключения (connection_org1.json). Идентификатор можно создать и импортировать в кошелек файловой системы. Я могу подключиться к сети, используя метод Gateway.connect(…) и профиль подключения connection_org1.json. Однако в тот момент, когда я вызываю Gateway.getNetwork(“mychannel”), мои проблемы начинаются. Вот ошибка, возвращаемая Fabri c SDK:
    [nodemon] starting `node ./dist/server.js`

    Express server listening on port 3050

    Wallet path: /usr/local/src/fabric-network-code/wallet

    E0114 17:16:47.872273165    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    E0114 17:16:48.873788447    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    E0114 17:16:50.368082218    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    2020-01-14T22:16:50.869Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7051

    2020-01-14T22:16:50.870Z - error: [Channel.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:7051

    E0114 17:16:50.877630619    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    E0114 17:16:51.876732084    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    E0114 17:16:53.263732590    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    E0114 17:16:53.303070959    1998 ssl_transport_security.cc:1238] Handshake failed with fatal error SSL_ERROR_SSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed.

    2020-01-14T22:16:53.875Z - error: [Remote.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:8051

    2020-01-14T22:16:53.875Z - error: [Channel.js]: Error: Failed to connect before the deadline URL:grpcs://localhost:8051

    2020-01-14T22:16:53.875Z - error: [Network]: _initializeInternalChannel: Unable to initialize channel. Attempted to contact 2 Peers. Last error was Error: Failed to connect before the deadline URL:grpcs://localhost:8051

    Unable to initialize channel. Attempted to contact 2 Peers. Last error was Error: Failed to connect before the deadline URL:grpcs://localhost:8051

    [nodemon] app crashed - waiting for file changes before starting...
А вот журнал из журнала контейнеров docker для peer0.org1.example.com
    2020-01-14 22:16:47.872 UTC [core.comm] ServerHandshake -> ERRO 085 TLS handshake failed with error EOF server=PeerServer remoteaddress=192.168.80.1:38886

    2020-01-14 22:16:48.874 UTC [core.comm] ServerHandshake -> ERRO 086 TLS handshake failed with error EOF server=PeerServer remoteaddress=192.168.80.1:38890

    2020-01-14 22:16:50.368 UTC [core.comm] ServerHandshake -> ERRO 087 TLS handshake failed with error EOF server=PeerServer remoteaddress=192.168.80.1:38894

    2020-01-14 22:16:53.303 UTC [core.comm] ServerHandshake -> ERRO 088 TLS handshake failed with error EOF server=PeerServer remoteaddress=192.168.80.1:38910

Я пробовал различные перестановки и комбинации с использованием разных сертификатов, но никуда не попал , Онлайн-форумы указывают, что это проблема общения между заказчиком и партнером. Однако в заказчике нет сообщений об ошибках.

Я задавал этот вопрос в chat.hyperledger.org, но ответа пока нет.

1 Ответ

0 голосов
/ 16 января 2020

Так глупо с моей стороны. У меня был каталог crypto-config, находящийся в папке проекта моего узла (я не знаю, когда мог скопировать его ....), и это отбрасывало переменную tlscacert.

У меня есть удалил поврежденный каталог, и теперь он читает правильный каталог под .../first-network/crypto-config/.../<tlsca file>.pem

Иногда (и довольно часто :-)) ответ тут же, но вы слишком глупы, чтобы его увидеть !!!

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