I need help understanding the following text from section 4.2 on this paper: Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial

Dependent-Failures Output Optimization. If a client and a state machine replica run on the same processor, then even when Byzantine failures are possible, the client need not gather a majority of responses to its requests to the state machine. It can use the single response produced locally.

If understand correctly, you have 2t + 1 replicas with one of the replicas with a voter client. In the simplest case you have t=0 and therefore 1 replica with the client voter on the same processor. This means that regardless the correctness of the replica, the output is the client's absolute truth. The case that confuses me is when a t=1 and you have 3 replicas. Let us say that the local replica to the client with a voter is faulty then we get something like this: enter image description here

If the client's local replica is faulty and it doesn't gather a majority of responses, then the voter will vote on a wrong output. What am I missing?

  • The answer is in the paragraph before the quote. Can you address what doesn’t make sense to you with regards to that paragraph? – sudo rm -rf slash Dec 18 '18 at 18:30
  • @sudorm-rfslash thanks for replying. In the previous paragraph assumes the correctnes of a processor. A byzantine failure can be related to an incorrect computation, conflicting information to different parts of the system, and collusion with other failed nodes. So if the processor is running correctly, but the replica has been hacked to report incorrect output, then it doesn't matter if the processor if is not faulty because there will be a byzantine fault on the replica. – KJP Dec 18 '18 at 18:37
  • 1
    The paragraph’s last (maybe second to last) sentence ends with ‘if the processor is faulty...’. Based on the paragraph before that one, i think byzantine failures are in scope. – sudo rm -rf slash Dec 18 '18 at 18:41
  • 1
    I think (but am not sure) that the paper is saying that if the machine is faulty, then both the client and that smr are faulty. Or neither are faulty. – sudo rm -rf slash Dec 18 '18 at 18:42
  • I wasn't undertstanding it that way. I assume byzantine faults are really hard to detect (invisible operationally) hence why consensus is required to solve this potential issue. @sudorm-rfslash add your comments as the answer to accept them, thanks. – KJP Dec 18 '18 at 18:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.