Вчера столкнулся с хорошей проблемой: ничего не происходит в случае сбоя контейнера с цепным кодом или его остановки вручную.
Пример сети (с использованием изображений версии 1.2.0):
- 2 ORGs
- 2 CA
- 2 пира ORG1 (с использованием LevelDB в качестве хранилища)
- 2 пира ORG2 (с использованием LevelDB в качестве хранилища)
- 1 одиночный заказчик
- 1 общий канал с консорциумом из 2 орг
- эта сеть запускается под управлением Docker Swarm на 4 виртуальных машинах (2 менеджера, 2 рабочих узла)
Есть много элементов, которые могут сломаться:
- сбой контейнера с цепочкой кодов (!)
- сбой одного или двух пиров ORG1
- заказчик вылетает
Итак. Поведение ткани по умолчанию:
- сбой контейнера с цепочкой кодов (!)
Прекратить обработку запросов SDK. без перезагрузки
UPD_1: При следующем запросе (вызов / запрос) cc-контейнер будет воссоздан
- сбой одного / двух пиров ORG1
остановить обработку запросов из-за потери соединения с каналом
после автоматического перезапуска / запуска при сбое: потеря соединения с каналом
если цепочка кода была создана на этом узле: аварийный контейнер цепочки кода
Итак. Каковы стратегии / лучшие практики для восстановления сети Hyperledger Fabric после сбоев?