В Практической византийской отказоустойчивости (PBFT) причина, по которой требуется 3f+1
, насколько я понимаю, заключается в том, чтобы учесть худший сценарий, когда:
1. f+1 nodes are normal
2. f nodes are unresponsive
3. f nodes are faulty
Итак, в фазе PREPARE
, как может каждый узел получать 2f
одинаковые PREPARE
сообщения от других узлов, чтобы начать фазу COMMIT
?
Поскольку только f+1
узлы могут надежно отправлять одно и то же PREPARE
сообщение, каждый узел должен получать только f
одного и того же PREPARE
сообщения (не считая своих собственных). Итак, как они могут получить сообщение 2f
PREPARE
, чтобы начать кворум и перейти к следующему этапу?