Corda BFT нотариальный кластер останавливается после того, как одна реплика выходит из строя - PullRequest
1 голос
/ 15 марта 2019

TL; DR - кластер BFT с 4-5 нотариальными узлами останавливается при уничтожении одной реплики.

Я запустил демонстрацию нотариуса , и кластер Raft (с 3 узлами нотариуса) вел себя как ожидалось - когда я убиваю лидера, происходят выборы, и кластер нотариуса продолжает предоставлять надежную услугу.

Я ожидаю, что то же самое произойдет при запуске кластера BFT (с 4 нотариальными узлами) - уничтожение одной из реплик не должно помешать кластеру обеспечить надежную нотариальную услугу. Однако вот что происходит:

1) Запустить нотариальный кластер BFT

2) Я могу заверять 10 транзакций, используя gradlew samples:notary-demo:notarise

3) Остановить одну из реплик в кластере

4) Попробуйте нотариально заверять 10 транзакций, используя gradlew samples:notary-demo:notarise

5) Подождите несколько минут, ничего не происходит (транзакции не заверены нотариусом)

6) Все остальные терминалы реплик продолжают заполняться re-connecting to replica 1 at /127.0.0.1:11010

Просто чтобы быть в безопасности, я решил добавить еще один нотариальный узел в кластер. Однако ничего не меняется - есть 5 нотариальных узлов, и уничтожение одного из них приводит к остановке кластера.

Я изучил , как работает BFT SMaRt , но, насколько я могу судить, он должен быть в состоянии терпеть любые сбои (включая аварийный останов), если имеется достаточно рабочих реплик (N> = 3f + 1).

Есть что-то, чего я здесь не хватает? Является ли поведение, которое я ожидаю, необоснованным - кластер BFT с 4-5 нотариальными узлами, способный выдержать гибель 1 узла? Или это проблема с Кордой?

...