...
/Fault Tolerance for Outputs and Clients
Fault Tolerance for Outputs and Clients
Learn how to generate outputs with fault tolerance from state machine replicas and protect them from faulty clients.
We have already discussed how to make a group of state machines tolerant to faults. However, the output of the state machines goes to the output devices read by the voter devices. The output and voter devices can also fail. In this lesson, we will discuss how to deal with such failures.
Fault-tolerant outputs
If we use a single output device for an ensemble of replicas, the resulting system would not be
Outputting externally
A major proportion of applications of state machine replication requires outputting to a client, system, or node not part of the group of replicas. Suppose a system of replicated state machines has an output node that collects outputs from all replicas and sends the combined output to its destination. In that case, failure of the output node will result in the system generating incorrect outputs. Therefore, we must develop a solution enabling a system to tolerate faulty output devices.
We could replicate the output node to avoid the problem mentioned above. This replication can be done when every output node combines the output of all state machine replicas and sends its output to a stream or channel where all output nodes send their outputs.
If output nodes can exhibit Byzantine failures, then the output generated by a majority of
Outputting inside the system
Suppose any component inside the system has to receive the output, such as a client. In that case, it should wait for ...