gossip.discovery Закрытие соединения с конечной точкой?

Я создал сеть с 2оргами, каждый с 2peers и 1ca.

После создания сети я получаю следующую ошибку:

peer0.org2.example.com|2020-01-30 06:30:18.279 UTC [gossip.comm] func1 -> WARN 048 peer0.org1.example.com:7051, PKIid:5a9ed9a3592dd14008b90c942f302ef06aa590060ee281d4750ebb1b76dd2e5e isn't responsive: EOF
peer0.org2.example.com|2020-01-30 06:30:18.279 UTC [gossip.discovery] expireDeadMembers -> WARN 049 Entering [5a9ed9a3592dd14008b90c942f302ef06aa590060ee281d4750ebb1b76dd2e5e]
peer0.org2.example.com|2020-01-30 06:30:18.279 UTC [gossip.discovery] expireDeadMembers -> WARN 04a Closing connection to Endpoint: peer0.org1.example.com:7051, InternalEndpoint: , PKI-ID: 5a9ed9a3592dd14008b90c942f302ef06aa590060ee281d4750ebb1b76dd2e5e, Metadata: 
peer0.org2.example.com|2020-01-30 06:30:18.280 UTC [gossip.discovery] expireDeadMembers -> WARN 04b Exiting

для всех сверстников

Я установил следующие параметры сплетен (в docker-compose.yml):

peer0.org1.example.com с портом 7051:

- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:10051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false

peer1.org1.example.com с портом 10051

- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:10051
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false

peer0.org2.example.com с портом 8051:

- CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:9051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false

peer1.org2.example.com с портом 9051

- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:9051
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false

После удаления внешних конечных точек я не вижу этих ошибок.

Если я правильно понял, начальная загрузка делает порт общедоступным, чтобы одноранговые узлы внутри организации могли общаться, а внешняя конечная точка делает порт общедоступным, чтобы одноранговые узлы могли общаться с одноранговыми узлами в разных организациях. Не так ли?

заранее спасибо


person Giorgos Niotis    schedule 30.01.2020    source источник


Ответы (1)


Вы вставляете неверные значения в свои переменные.

В примере peer0org1, CORE_PEER_GOSSIP_EXTERNALENDPOINT должен содержать адрес peer0org1, и это адрес, по которому ваш партнер прослушивает сплетни. CORE_PEER_GOSSIP_BOOTSTRAP должен вместо этого указывать на другого однорангового узла с активированной внешней конечной точкой для сплетен, в вашем случае - от org2.

Так должно быть: peer0.org1.example.com с портом 7051:

- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false

peer0.org2.example.com с портом 8051:

- CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:8051
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false

Таким образом коллеги должны соединиться друг с другом и начать выборы.

В вашем конкретном случае вы не можете позволить им общаться, потому что они из другой организации. Мой был просто примером, но вы можете использовать его для адаптации к вашему решению. Вам не нужны госси, если у вас есть 1 партнер для организации, но если у вас есть 2 партнера для организации, вы можете позволить им общаться, как я сказал.

person RicNtt    schedule 30.01.2020
comment
не работает, теперь ошибка: Не удалось подключиться к конечной точке: peer0.org1.example.com:7051, InternalEndpoint: peer0.org1.example.com:7051, PKI-ID: ‹nil›, метаданные:: peer0.org1 .example.com: 7051 не входит в нашу организацию, не может быть одноранговым узлом начальной загрузки. - person Giorgos Niotis; 30.01.2020
comment
Конечно, потому что вы можете разрешить одноранговые сплетни только между участниками одной и той же организации. Таким образом, вы должны создать 2 одноранговых узла под org1 и позволить им общаться, то же самое для Org2. Я добавил правку в свой ответ :) - person RicNtt; 30.01.2020
comment
Я редактировал вопрос для 2 человек в каждой организации. Не могли бы вы отредактировать свой ответ и рассказать мне, как их настроить. Спасибо - - person Giorgos Niotis; 30.01.2020
comment
По-прежнему закрывает соединение со всеми одноранговыми узлами один за другим. - person Giorgos Niotis; 02.02.2020