Привет, @Anantha Padmanabhan
Это не имеет ничего общего с системой заказов, а raft - идеальный алгоритм распределенного консенсуса
В вашем случае, когда присутствуют 5 заказчиков, вы пытались убить одного и оставшиеся 4 начнут выборы лидера, если 5-й будет лидером и ваша сеть стабильна, не беспокойтесь.
Проблема находится на стороне вашего SDK в профиле подключения. Например:
"channels": {
"samchannel": {
"orderers": [
"sam-orderer1",
"sam-orderer2",
"sam-orderer3",
"sam-orderer4",
"sam-orderer5"
],
...
Если вы попытаетесь удалить sam-orderer1
Orderer, ваш SDK попытается отправить транзакцию на sam-orderer1
поскольку он находится в 0-м индексе массива
Тест: попробуйте удалить отличное от sam-orderer1
, например sam-orderer3
, и теперь попробуйте вызвать транзакцию, и она все равно будет работать
Сделайте этот тест и обновите мне статус теста
, это происходит со стороны SDK, как только он обнаруживает, что какой-либо заказчик не работает, он останавливает выполнение, вместо этого он должен перенаправить другому доступному заказчику. Я думаю, что единственный способ - вместо того, чтобы SDK автоматически разрешал заказчиков с помощью профиля подключения, вы можете сделать этот шаг и отправить только доступного заказчика, а доступные заказчики могут быть предоставлены с помощью службы обнаружения