Является ли согласованный алгоритм Рафта византийским отказоустойчивым (bft) алгоритмом?

Является ли алгоритм консенсуса на плоту византийским отказоустойчивым алгоритмом?

Сколько (процентов) узлов требуется для достижения соглашения / консенсуса?

1 ответ

Решение

Нет, первоначальное описание Рафта (Диего Онгаро и Джона Оустерхаута (1)) не является византийским отказоустойчивым.

Представьте себе узел, который голосует дважды за определенный срок, или голосует за другой узел, у которого есть журнал, который не является современным, как его собственный, и этот узел становится лидером. Такое поведение может привести к разделению мозгов (случай, когда два узла считают себя лидером) или к несоответствиям в журнале.

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

Однако есть несколько работ, где представлена ​​византийская отказоустойчивая версия Raft (2).


Чтобы достичь консенсуса, Raft нуждается в том, чтобы большинство узлов было живым - > 50%,

Это значит, чтобы терпеть t неудачи, еще предстоит t+1 узлы работают правильно.

Так 2t+1 узлы должны быть t-устойчивыми, что является наименьшим количеством узлов, необходимых для достижения консенсуса при наличии частичной синхронизации (3) с просто допустимыми ошибками пропусков.

Другие вопросы по тегам